- Standalone(独立集群模式)
- 原理:
- 操作:
1.集群规划
- node1:master
- node2:worker/slave
- node3:worker/slave
2.修改slaves
- 进入配置目录:spark中的conf目录中
- 修改配置文件名称:mv workers.template workers
- 修改配置文件内容:
- vim slaves
- node2
- node3
3.修改spark-env.sh
- 进入配置目录:spark中的conf
- 修改配置文件名称:mv spark-env.sh.template spark-env.sh
- 修改配置文件内容:vim spark-env.sh
- 增加内容如下:
- 设置JAVA安装目录:
- JAVA_HOME=/opt/jdk
- ## HADOOP软件配置文件目录,读取HDFS上文件和运行Spark在YARN集群时需要,先提前配上HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop
#指定spark老大Master的IP和提交任务的通信端口
SPARK_MASTER_HOST=node1
SPARK_MASTER_PORT=7077(默认)
SPARK_MASTER_WEBUI_PORT=8080(如果8080不行就该8087,不能为8081因为8081为worker使用的)
SPARK_WORKER_CORES=1(CPU)
SPARK_WORKER_MEMORY=1g(内存)
4.分发:
- 将配置的好的spark安装包分发给集群中其他机器,密令如下:
- cd /opt/
- scp -r /opt/spark-3.1.1-bin-hadoop2.7 root@node2:/opt
- scp -r /opt/spark-3.1.1-bin-hadoop2.7 root@node3:/opt
- 复制过去之后修改名字改成spark
- 测试:
- 集群启动和停止
- 在主节点上启动spark集群
- /opt/spark/sbin/start-all.sh
- 在主节点上停止spark集群
- /opt/spark/sbin/stop-all.sh
- jps查看进程
- 启动spark-shell
- /opt/spark/bin/spark-shell --master spark://master:7077
- 任务界面:master:4040
- 提交wordcount任务
- 注意上传文件words.txt到HDFS中方便worker执行文件
- hdfs dfs -put /root/words.txt /wordcount/input/words.txt
- 如果目录不存在可以创建
- hdfs dfs -mkdir -p /wordcount/input
- 结束后可以删除该目录
- hdfs dfs -rm -r /wordcount/input
- 下面的8020或者9000是通过hdfs:50070决定的
- val textFile = sc.textFile("hdfs://node1:8020或者9000/wordcount/input/words.txt")
val counts = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _) - counts.collect
- counts.saveASTextFile("hdfs://node01:8020/wordcount/output47")
- 查看结果可以到wordcount/output中查看
- 查看spark任务web-UI(4040端口)
- 总结:
- spark:4040任务运行web-UI解面
- spark:8080spark集群web-UI解面
- spark:7077spark提交任务时德通信端口
- hadoop:50070集群web-UI解面端口
- hadoop:8020/9000(老版本)文件上传下载通信端口