文章目录
原理
操作
- 集群规划
node01:master
ndoe02:worker/slave
- 配置slaves/workers
进入配置目录:
cd /export/servers/spark/conf
修改配置文件名称:
mv slaves.template slaves
vim slaves
添加以下内容:
node02
- 配置master
进入配置目录:
cd /export/servers/spark/conf
修改配置文件名称:
mv spark-env.sh.template spark-env.sh
修改配置文件:
vim spark-env.sh
增加如下内容:
## 设置JAVA安装目录
JAVA_HOME=$JAVA_HOME
## HADOOP软件配置文件目录,读取HDFS上文件和运行Spark在YARN集群时需要,先提前配上
HADOOP_CONF_DIR=/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
YARN_CONF_DIR=/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
## 指定spark老大Master的IP和提交任务的通信端口
SPARK_MASTER_HOST=node01
SPARK_MASTER_PORT=7077
SPARK_MASTER_WEBUI_PORT=8080
SPARK_WORKER_CORES=1
SPARK_WORKER_MEMORY=1g
- 分发
将配置好的将 Spark 安装包分发给集群中其它机器,命令如下:
cd /export/servers/
scp -r spark root@node02:$PWD
测试
1.集群启动和停止
在主节点上启动spark集群:
/export/servers/spark/sbin/start-all.sh
在主节点上停止spark集群:
/export/servers/spark/sbin/stop-all.sh
在主节点上单独启动和停止Master:
start-master.sh
stop-master.sh
在从节点上单独启动和停止Worker(Worker指的是slaves配置文件中的主机名):
start-slaves.sh
stop-slaves.sh
2.jps查看进程
node01:master
node02:worker
3.http://node01:8080/
4.启动spark-shell
/export/servers/spark/bin/spark-shell --master spark://node01:7077
5.提交WordCount任务
- 上传测试文件到hdfs
hdfs dfs -put /export/data/Spark/words.txt /wordcount/input/words.txt
- 目录如果不存在可以创建
hdfs dfs -mkdir -p /wordcount/input
- 提交代码
val textFile = sc.textFile("hdfs://node01:8020/wordcount/input/words.txt")
val counts = textFile.flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _)
counts.collect
counts.saveAsTextFile("hdfs://node01:8020/wordcount/output47")
6.查看结果
http://node01:50070/explorer.html#/wordcount/output47
7.查看spark任务web-ui
http://node01:4040/jobs/
总结:
spark: 4040 任务运行web-ui界面端口
spark: 8080 spark集群web-ui界面端口
spark: 7077 spark提交任务时的通信端口
hadoop: 50070集群web-ui界面端口
hadoop:8020/9000(老版本) 文件上传下载通信端口