sparkHA的搭建

mac2025-09-13  15

非HA的spark集群搭建(standalone模式)

关于sparkHA这里有一篇比较好的博客,可以参考! 首先将spark的压缩包解压到指定的路径;然后进行配置;

第一步:进入spark的conf/目录下,有一个配置文件为spark-env.sh.template 文件,将文件名修改为spark-env.sh (系统默认读取的是spark-env.sh 不会去读取带有template后缀的文件)
mv spark-env.sh.template spark-env.sh
第二步:编辑这个以上修改好名称的配置文件;在最底部加上如下代码块(最简单的配置)e
export JAVA_HOME=$JAVA_HOME (你的jdk路径) export SPARK_MASTER_HOST=【HostName】(需要开启master的节点的主机名) export SPARK_MASTER_PORT=7077 (默认的端口)
第三步:将配置好的conf文件分发到其他spark节点上
scp -r $SPARK_HOME/conf hostName:/$SPARK_HOME/

分发之后就可以了;这样的话就是在主节点上启动master就是SPARK_MASTER_HOST这个配置项后面所带的主机上启动master!

基于zookeeper的spark HA搭建

基于以上的非HA的spark来搭建的;
注意:首先需要确保你的主机上搭建好了zookeeper集群,以及有JDK环境;

这里以我的为例: 三台主机:master、slave01、slave02 目标: master:master(ALIVE)、worker slave01:master(STANDBY)、worker slave02:worker 我的三台主机上是都 装好了zookeeper的; 还是进入到conf/目录下修改配置文件spark-env.sh

首先将以上的SPARK_MASTER_HOST这项配置删除(三台节点都需要删除),然后添加一项配置,如下面所示: export JAVA_HOME=/usr/local/src/jdk1.8.0_201/ export SPARK_MASTER_PORT=7077 export SPARK_DAEMON_JAVA_OPTS="-Dspark.depoly.recoveryMode=ZOOKEEPER -Dspark.depoly.zookeeper.url=master:2181,slave01:2181,slave02:2181 -Dspark.depoly.zookeeper.dir=/sparkHA"

注意:-Dspark.depoly.zookeeper.dir 这一项后面的路径可以自定义

启动spark集群; 在主节点上启动执行命令:

bin/start-all.sh (在master节点执行;) bin/start-master.sh (在备份节点上启动master进程)

到这里就完成了sparkHA的配置了,可以通过8080这个端口去访问master的web界面;

问题:在搭建spark的HA的时候遇到过比较多的问题,有时候就是ALIVE和STANDBY自动切换的时候切换不了;有时候是两个节点上的master web界面的状态都是ALIVE;但是没有找到问题的原因所在;只是重新搭建,所以这里成功搭建好了之后找到了这一片最简单的搭建方法

最新回复(0)