文章目录
注:scala直接解压配置环境变量即可
1.下载spark安装包
下载地址spark官网:http://spark.apache.org/downloads.html
这里我们使用 spark-2.2.0-bin-hadoop2.7版本.
2.上传压缩包并解压
这里我们上传到第一台机器 /export/servers 目录下,并执行以下命令:
tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz
3.修改配置文件
- 修改spark-env.sh
cd /export/servers/spark-2.2.0-bin-hadoop2.7/conf
cp spark-env.sh.template spark-env.sh
vim spark-env.sh
#配置java环境变量
export JAVA_HOME=/export/servers/jdk1.8.0_144
#指定spark老大Master的IP
export SPARK_MASTER_HOST=node01
#指定spark老大Master的端口
export SPARK_MASTER_PORT=7077
- 修改slave
cd /export/servers/spark-2.2.0-bin-hadoop2.7/conf
cp slaves.template slaves
vim slaves
node02
node03
原来的localhost不用删除
4.拷贝配置到其他主机
scp -r /export/servers/spark-2.2.0-bin-hadoop2.7 node02:/export/servers
scp -r /export/servers/spark-2.2.0-bin-hadoop2.7 node03:/export/servers
5.配置spark环境变量
三台机器都要执行
vim /etc/profile
export SPARK_HOME=/export/servers/spark-2.2.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
刷新配置
source /etc/profile
6.启动spark
在主节点(也就是第一台机器)启动spark
/export/servers/spark-2.2.0-bin-hadoop2.7/sbin/start-all.sh
停止spark
/export/servers/spark-2.2.0-bin-hadoop2.7/sbin/stop-all.sh
7.spark的web界面
正常启动spark集群后,可以通过访问 http://node01:8080, 查看spark的web界面,查看相关信息。
7.1 执行第一个spark程序
进入spark目录
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://node01:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/export/servers/spark-2.2.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.2.0.jar \
10
8.启动Spark-Shell
spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,用户可以在该命令行下用scala编写spark程序。
8.1 运行spark-shell 读取本地文件 单机版wordcount
- spark-shell --master local[N] CPU核数N个
读取本地文件,实现文件内的单词计数。本地文件words.txt 内容如下:
hello me
hello you
hello her
可以在本地运行,也可以在第一台机器
- spark-shell
第一台机器:
sc.textFile("file:///root/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
代码说明:
sc:Spark-Shell中已经默认将SparkContext类初始化为对象sc。用户代码如果需要用到,则直接应用sc即可。
textFile:读取数据文件
flatMap:对文件中的每一行数据进行压平切分,这里按照空格分隔。
map:对出现的每一个单词记为1(word,1)
reduceByKey:对相同的单词出现的次数进行累加
collect:触发任务执行,收集结果数据。
本地:
8.2 读取HDFS上数据
- (1)整合spark和HDFS,修改配置文件
在spark-env.sh ,添加HADOOP_CONF_DIR配置,指明了hadoop的配置文件后,默认它就是使用的hdfs上的文件
cd /export/servers/spark-2.2.0-bin-hadoop2.7/conf
vim spark-env.sh
#spark整合hdfs
export HADOOP_CONF_DIR=/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
- (2)、再启动启动hdfs,然后重启spark集群
- (3)、向hdfs上传一个文件
将root下面的words.txt拷贝到hdfs的test目录
hdfs dfs -put /root/words.txt /test
查看内容
hdfs dfs -cat /test/words.txt
- (4)、在spark shell中用scala语言编写spark程序
sc.textFile("/test/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect