如何安装spark 2.2.0独立版并演示字数统计

技术如何进行spark 2.2.0 Standalone安装及wordCount演示本篇文章为大家展示了如何进行spark 2.2.0 Standalone安装及wordCount演示,内容简明扼要并且容易理解,绝对能使

本篇文章为大家展示了如何进行火花2.2.0独立版安装及字数演示,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

前提:安装好hadoop集群,

一、斯卡拉安装

1、下载斯卡拉安装包:https://d3kbcqa 49 MIB 13。云锋。net/spark-2。2 .0-bin-Hadoop 2.7。tgz

2、上传斯卡拉安装包

[root@hadp-master local]# pwd

/usr/local

[root @ hadp-master local]# ll Scala-2。11 .7 .tgz

-rw-r - r -.一根根28460530 2月25日03:53 scala-2.11.7.tgz

3、 解压并删除安装包

[root @ hadp-master local]# tar-zxvf Scala-2。11 .7 .tgz

[root @ hadp-master local]# RM-RF Scala-2。11 .7 .tgz

4、 配置环境变量

vi /etc/profile添加如下

导出SCALA _ HOME=/usr/local/SCALA-2。11 .七

导出路径=$PATH:$SCALA_HOME/bin

5、 生效,查看斯卡拉版本

[root @ hadp-master local]# Scala-版本

斯卡拉代码运行器版本2.11.7 -版权所有2002-2013年,拉丁美洲和加勒比海灯/EPFL

6、 其他主机配置斯卡拉环境

[root @ hadp-master local]# scp-r/usr/local/Scala-2。11 .7/hadp-node 1:/usr/local/

[root @ hadp-master local]# scp-r/usr/local/Scala-2。11 .7/hadp-node 2:/usr/local/

[root @ hadp-master local]# scp-r/etc/profile hadp-node 1:/etc/profile

配置文件100% 2414 2.4KB/s 00:00

[root @ hadp-master local]# scp-r/etc/profile hadp-node 2:/etc/profile

配置文件100% 2414 2.4KB/s 00:00

二、火花安装

1、 下载发动安装包,上传

[root@hadp-master local]# pwd

/usr/local

[root @ hadp-master local]# ll spark-2。2 .0-bin-Hadoop 2。7 .tgz

-rw-r - r -.一根根203728858 2月25日04:20火花-2。2 .0-bin-Hadoop 2。7 .tgz

2、 解压

[root @ hadp-master local]# tar-zxvf spark-2。2 .0-bin-Hadoop 2。7 .tgz

3、 配置环境变量

vi /etc/profile添加如下内容

导出SPARK _ HOME=/usr/local/SPARK-2。2 .0-bin-Hadoop 2.7

导出路径=$PATH:$SPARK_HOME/bin

4、配置火花环境

[root @ hadp-master local]# CD spark-2。2 .0-bin-Hadoop 2.7/conf/

[root@hadp-master conf]# ll

共计32

-rw-r - r -.2017年七月一日

-rw-r - r -.1 500 500 1105 2017年七月一日fairscheduler.xml .模板

-rw-r - r -.1 500 500 2025年七月一日2017 log4j.properties.template

-rw-r - r -.1 500 500 7313 2017年七月一日指标。属性。模板

-rw-r - r -.1 500 500 865 2017年七月一日奴隶

-rw-r - r -.2017年七月一日1 500 500 1292火花-默认值。糖膏剂模板

-rwxr-xr-x. 1 500 500 3699 Ju

l 1 2017 spark-env.sh.template

4.1
[root@hadp-master conf]# cp spark-env.sh.template spark-env.sh
[root@hadp-master conf]# vi spark-env.sh 末尾添加如下:

export JAVA_HOME=/usr/local/jdk1.8.0_131

export SCALA_HOME=/usr/local/scala-2.11.7

export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.4/

export HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-2.7.4/etc/hadoop

export SPARK_MASTER_IP=hadp-master

export SPARK_WORKER_MEMORY=1g

export SPARK_WORKER_CORES=2

export SPARK_WORKER_INSTANCES=1

变量说明 
- JAVA_HOME:Java安装目录 
- SCALA_HOME:Scala安装目录 
- HADOOP_HOME:hadoop安装目录 
- HADOOP_CONF_DIR:hadoop集群的配置文件的目录 
- SPARK_MASTER_IP:spark集群的Master节点的ip地址 
- SPARK_WORKER_MEMORY:每个worker节点能够最大分配给exectors的内存大小 
- SPARK_WORKER_CORES:每个worker节点所占有的CPU核数目 
- SPARK_WORKER_INSTANCES:每台机器上开启的worker节点的数目

4.2 
[root@hadp-master conf]# cp slaves.template slaves
[root@hadp-master conf]# vi slaves 添加如下
# A Spark Worker will be started on each of the machines listed below.
hadp-node1
hadp-node2

4.3 
[root@hadp-master local]# scp -r spark-2.2.0-bin-hadoop2.7/ hadp-node1:/usr/local
[root@hadp-master local]# scp -r spark-2.2.0-bin-hadoop2.7/ hadp-node2:/usr/local
[root@hadp-master local]# scp /etc/profile hadp-node1:/etc/
profile 100% 2492 2.4KB/s 00:00 
[root@hadp-master local]# scp /etc/profile hadp-node2:/etc/
profile 100% 2492 2.4KB/s 00:00

5、启动Spark集群
5.1
因为我们只需要使用hadoop的HDFS文件系统,所以我们并不用把hadoop全部功能都启动。
[root@hadp-master sbin]# pwd
/usr/local/hadoop/hadoop-2.7.4/sbin
[root@hadp-master sbin]# ./start-dfs.sh 
Starting namenodes on [hadp-master]
hadp-master: starting namenode, logging to /usr/local/hadoop/hadoop-2.7.4/logs/hadoop-root-namenode-hadp-master.out
hadp-node2: starting datanode, logging to /usr/local/hadoop/hadoop-2.7.4/logs/hadoop-root-datanode-hadp-node2.out
hadp-node1: starting datanode, logging to /usr/local/hadoop/hadoop-2.7.4/logs/hadoop-root-datanode-hadp-node1.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/hadoop-2.7.4/logs/hadoop-root-secondarynamenode-hadp-master.out
[root@hadp-master sbin]# jps
4914 NameNode
5235 Jps
5082 SecondaryNameNode

5.2
[root@hadp-master sbin]# pwd
/usr/local/spark-2.2.0-bin-hadoop2.7/sbin
[root@hadp-master sbin]# ./start-all.sh 
starting org.apache.spark.deploy.master.Master, logging to /usr/local/spark-2.2.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-hadp-master.out
hadp-node1: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/spark-2.2.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-hadp-node1.out
hadp-node2: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/spark-2.2.0-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-hadp-node2.out
[root@hadp-master sbin]# jps
4914 NameNode
5301 Master
5369 Jps
5082 SecondaryNameNode

[root@hadp-node1 scala-2.11.7]# jps
4305 DataNode
4451 Worker
4500 Jps

[root@hadp-node2 ~]# jps
4444 Worker
4301 DataNode
4494 Jps

-- 进入Spark的WebUI界面
http://10.100.25.30:8080/

-- 进入 Spark-shell
[root@hadp-master sbin]# spark-shell
Welcome to version 2.2.0

Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_131)
Type in expressions to have them evaluated.
Type :help for more information.

scala>

文本文件中随意输入一些单词,用空格隔开,我们会编写Spark程序对该文件进行单词词频统计。
[root@hadp-master ~]# cat workCount.txt 
andy leaf
andy taozi
andy leaf
andy hello

[root@hadp-master ~]# hadoop fs -put workCount.txt /tmp
[root@hadp-master ~]# hadoop fs -ls /tmp
Found 3 items
drwx------ - root supergroup 0 2018-02-01 05:48 /tmp/hadoop-yarn
drwx-wx-wx - root supergroup 0 2018-02-25 05:08 /tmp/hive
-rw-r--r-- 1 root supergroup 42 2018-02-25 06:05 /tmp/workCount.txt
[root@hadp-master ~]# hadoop fs -cat /tmp/workCount.txt
andy leaf
andy taozi
andy leaf
andy hello

词频统计

scala> val textFile = sc.textFile("hdfs://hadp-master:9000/tmp/workCount.txt")
scala> val wordCount = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
scala> wordCount.collect()
res0: Array[(String, Int)] = Array((leaf,2), (andy,4), (hello,1), (taozi,1))

上面只给出了代码,省略了执行过程中返回的结果信息,因为返回信息很多。
下面简单解释一下上面的语句。
textFile包含了多行文本内容,textFile.flatMap(line => line.split(” “))会遍历textFile中的每行文本内容,当遍历到其中一行文本内容时,会把文本内容赋值给变量line,并执行Lamda表达式line => line.split(” “)。line => line.split(” “)是一个Lamda表达式,左边表示输入参数,右边表示函数里面执行的处理逻辑,这里执行line.split(” “),也就是针对line中的一行文本内容,采用空格作为分隔符进行单词切分,从一行文本切分得到很多个单词构成的单词集合。这样,对于textFile中的每行文本,都会使用Lamda表达式得到一个单词集合,最终,多行文本,就得到多个单词集合。textFile.flatMap()操作就把这多个单词集合“拍扁”得到一个大的单词集合。

然后,针对这个大的单词集合,执行map()操作,也就是map(word => (word, 1)),这个map操作会遍历这个集合中的每个单词,当遍历到其中一个单词时,就把当前这个单词赋值给变量word,并执行Lamda表达式word => (word, 1),这个Lamda表达式的含义是,word作为函数的输入参数,然后,执行函数处理逻辑,这里会执行(word, 1),也就是针对输入的word,构建得到一个tuple,形式为(word,1),key是word,value是1(表示该单词出现1次)。
程序执行到这里,已经得到一个RDD,这个RDD的每个元素是(key,value)形式的tuple。最后,针对这个RDD,执行reduceByKey((a, b) => a + b)操作,这个操作会把所有RDD元素按照key进行分组,然后使用给定的函数(这里就是Lamda表达式:(a, b) => a + b),对具有相同的key的多个value进行reduce操作,返回reduce后的(key,value),比如(“hadoop”,1)和(“hadoop”,1),具有相同的key,进行reduce以后就得到(“hadoop”,2),这样就计算得到了这个单词的词频。

上述内容就是如何进行spark 2.2.0 Standalone安装及wordCount演示,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/149949.html

(0)

相关推荐

  • jquery如何检查一个表格有多少行

    技术jquery如何检查一个表格有多少行这篇文章主要为大家展示了“jquery如何检查一个表格有多少行”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jquery如何检查一个表

    攻略 2021年11月21日
  • 香港云与VPS的区别云服务器香港

    技术香港云与VPS的区别云服务器香港任何稳运行的网站都需要的云服务器与VPS服务器平台的基石。如果不了解这些云服务器和VPS,选择合适的网络托管类型可能既乏味又耗时。下面就来简单介绍一下二者的区别什么是香港云服务器? 云

    礼包 2021年12月17日
  • 串口调试工具kermit如何安装和配置

    技术串口调试工具kermit如何安装和配置这篇文章主要介绍了串口调试工具kermit如何安装和配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、ker

    攻略 2021年11月25日
  • 鲁拼音和组词,“兼”的读音和组词分别是什么

    技术鲁拼音和组词,“兼”的读音和组词分别是什么【拼音】鲁拼音和组词:jiān【解释】:
    1、同时涉及、处理或具有几方面的情况:兼职、兼顾、软硬兼施、德才兼备。
    2、加倍,合并:兼并、兼程。
    3、兼有主次之分,如董事长兼经

    生活 2021年10月27日
  • 如何使用torch.le和le(其他)

    技术torch.le和le(other)怎么使用本篇内容主要讲解“torch.le和le(other)怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“torch.le和

    攻略 2021年12月24日
  • session中的增删改方法是什么(session两种实现方式)

    技术如何进行session和v$session说明这期内容当中小编将会给大家带来有关如何进行session和v$session说明,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、前言

    攻略 2021年12月17日