HA下的Spark集群工作原理解密
Zookeeper中包含的內(nèi)容有哪些:所有的Worker Driver Application
下載Zookeeper
環(huán)境變量:
export ZOOKEEPER_HOME=
加入PATH
解壓并創(chuàng)建logs/ 和data/
cp conf/zoo_sample.cfg conf/zoo.cfg
vi conf/zoo.cfg
#加入/修改以下內(nèi)容
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
#拷貝到其他機(jī)器
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并加入以下內(nèi)容:
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進(jìn)程,并且在控制臺中能看到狀態(tài)為Standby
提交任務(wù)要給三臺機(jī)器
./spark-shell --master spark://Master:7077,Worker1:7077,Worker2:7077
把Master的Spark停掉以后,zookeeper會重新選擇新的Master,例如為Worker1,如果重新打開Master的Spark后則不會重新變?yōu)锳ctive的。
|