非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界面;