HA下的Spark集群工作原理解密
Zookeeper中包含的内容有哪些:所有的Worker Driver Application
下载Zookeeper
环境变量:
export ZOOKEEPER_HOME=
加入PATH
解压并创建logs/ 和data/
cp conf/zoo_sample.cfg conf/zoo.cfg
vi conf/zoo.cfg
#加入/修改以下内容
dataDir=/home/hadoop/zookeeper-3.4.6/data
dataLogDir=/home/hadoop/zookeeper-3.4.6/logs
server.0=Master:2888:3888
server.1=Worker1:2888:3888
server.2=Worker2:2888:3888
cd data/
echo 0 > myid
#拷贝到其他机器
scp -r zookeeper-3.4.6 hadoop@Worker1:/home/hadoop/
scp -r zookeeper-3.4.6 hadoop@Worker2:/home/hadoop/
#修改Worker1和Worker2的myid
启动:
bin/zkServer.sh start
#spark支持zookeeper
cd $SPARK_HOME/conf
vi spark-env.sh
注释掉#SPARK_MASTER_ID并加入以下内容:
SPARK_DAEMON_JAVA_OPT="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.u
rl=Master:2181,Worker1:2181,Worker2:2181 -Dspark.deploy.zookeeper.dir=/spark"
scp $SPARK_HOME/conf/spark-env.sh hadoop@Worker1:$SPARK_HOME/conf/
scp $SPARK_HOME/conf/spark-env.sh hadoop@Worker2:$SPARK_HOME/conf/
#启动Master上面的Spark
#启动Worker1和Worker2的Spark,这时Worker1和Worker2的jps中有Master进程,并且在控制台中能看到状态为Standby
提交任务要给三台机器
./spark-shell --master spark://Master:7077,Worker1:7077,Worker2:7077
把Master的Spark停掉以后,zookeeper会重新选择新的Master,例如为Worker1,如果重新打开Master的Spark后则不会重新变为Active的。
|