1.确定环境是否安装好
搭建环境之前先确定自己的环境是否做好
1.jdk 1.8版本
2.HDFS MapReduce Hadoop 3.2.1 +
3.zookeeper
4.python 环境 3.8+
点击直接查看 1,23,4操作: Hadoop jdk python 环境配置教程.
2.先在spark-env.sh
中, 删除: SPARK_MASTER_HOST=node1
原因: 配置文件中固定master是谁, 那么就无法用到zk的动态切换master功能了.
在spark-env.sh
中, 增加:
SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node1:2181,node2:2181,node3:2181 -Dspark.deploy.zookeeper.dir=/spark-ha"
# spark.deploy.recoveryMode 指定HA模式 基于Zookeeper实现
# 指定Zookeeper的连接地址
# 指定在Zookeeper中注册临时节点的路径
3.将spark-env.sh 分发到每一台服务器上
scp spark-env.sh node2:/export/server/spark/conf/
scp spark-env.sh node3:/export/server/spark/conf/
4.停止当前StandAlone集群
sbin/stop-all.sh
5.启动集群:
# 在node1上 启动一个master 和全部worker
sbin/start-all.sh
# 注意, 下面命令在node2上执行
sbin/start-master.sh
# 在node2上启动一个备用的master进程
- 查看master机器上的master节点成功启动
- 查看 slave0上的节点是否启动成功
- 测试 主节点 master 不能正常启用候 slave0上的master 是否可以接管工作
- 测试方法 打开两个master 窗口 在一个提交任务后立即杀掉master虚拟机上的master节点自动跳转到备用节点进行工作证明多节点配置成功
(base) [root@6274master bin]# cd ..
(base) [root@6274master spark]# bin/spark-submit --master spark://6274master:7077 /usr/local/s/python/pi.py 1000
22/01/13 01:17:26 WARN NativeCodeLoader: Unable to load native-hadoop library for your platfora classes where applicable
Pi is roughly 3.142120
(base) [root@6274master spark]# bin/spark-submit --master spark://6274master:7077 /usr/local/s/python/pi.py 1000
22/01/13 01:20:17 WARN NativeCodeLoader: Unable to load native-hadoop library for your platfora classes where applicable
jpa
^C^F22/01/13 01:21:05 WARN StandaloneAppClient$ClientEndpoint: Connection to 6274master:7077 fter to reconnect...
22/01/13 01:21:05 WARN StandaloneSchedulerBackend: Disconnected from Spark cluster! Waiting fo
22/01/13 01:21:05 WARN StandaloneAppClient$ClientEndpoint: Connection to 6274master:7077 faileto reconnect...
Pi is roughly 3.146720
(base) [root@6274master spark]# jpa
-bash: jpa: command not found
(base) [root@6274master spark]# jps
4592 DataNode
5136 ResourceManager
8932 Jps
4405 NameNode
5320 NodeManager
6666 Worker
5950 QuorumPeerMain
4863 SecondaryNameNode
6495 HistoryServer
- 多节点测试成功标志
结论 HA模式下, 主备切换 不会影响到正在运行的程序.最大的影响是 会让它中断大约30秒左右.