赞
踩
Spark高可用集群是基于ZooKeeper的。
spark的主备切换过程需要做哪些工作?
①、zookeeper将备用master的状态更改为alive。
②、备用master从zookeeper拉取元数据。
③、备用master向worker节点发送信息,通知已经更换了master。
master主备切换过程中,能不能提交一个新的Application?
不能,因为此时旧的master已经挂掉了,而新的master还没准备好(RECOVER)。
如果已经有一个Application已经在集群中运行了,那么此时进行主备切换,对这个Application有没有影响?
没有影响,spark是粗粒度的资源调度,在任务运行之前已经找master为Application申请好资源了,Application运行时已经不需要master了。
高可用的spark集群与spark集群的搭建很相似,只是修改一个配置文件。以下步骤是在已经搭建好Spark集群的情况下操作的:
1.进入spark安装包的conf目录下,修改spark-env.sh文件。
SPARK_MASTER_IP=node01
SPARK_MASTER_PORT=7077
SPARK_WORKER_CORES=3
SPARK_WORKER_MEMORY=2g
SPARK_WORKER_DIR=/opt/software/spark/spark-1.6.3/work
SPARK_WORKER_INSTANCES=1
SPARK_MASTER_WEBUI_PORT=8888
SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node02:2181,node03:2181,node04:2181 -Dspark.deploy.zookeeper.dir=/spark-1106"
2.把配置好的spark-env.sh推送到其他节点。
scp -r spark-env.sh node02:`pwd`
scp -r spark-env.sh node03:`pwd`
scp -r spark-env.sh node04:`pwd`
3.选择node02作为备用master节点,在node02节点把SPARK_MASTER_IP的值改为node02
4.在node02,node03,node04节点分别启动zookeeper
5.在node01启动spark集群
6.在node02的spark的sbin目录下启动备用master
7.访问 http://node01:8888/ 可以查看Active Master节点WEBUI界面,访问 http://node02:8888/ 可以查看Standby Master节点的WEBUI界面
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。