Spark集羣高可用HA配置

本文中的Spark集羣包含三個節點,分別是Master,Worker1,Worker2。shell

一、在Master機器上安裝Zookeeper,本文安裝在/usr/etc目錄下瀏覽器

二、在Master機器配置Zookeeperoop

  2.一、cp /usr/etc/zookeeper-3.4.10/conf/zoo_sample.cfg /usr/etc/zookeeper-3.4.10/conf/zoo.cfg
  2.二、在安裝目錄下建立data,logs目錄:mkdir data;mkdir logs;
  2.三、vi /usr/etc/zookeeper-3.4.10/conf/zoo.cfg,增長內容以下:測試

dataDir=/usr/etc/zookeeper-3.4.10/data
dataLogDir=/usr/etc/zookeeper-3.4.10/logs
server.0=Master:2888:3888
server.1=Worker1:2888:3888
server.2=Worker2:2888:3888

  2.四、在建立的data目錄下建立myid文件,並修改內容爲0(對應配置中的server.0)url

三、拷貝安裝文件到Worker1,Worker2機器spa

scp -r /usr/etc/zookeeper-3.4.10 root@Worker1:/usr/etc/zookeeper-3.4.10
scp -r /usr/etc/zookeeper-3.4.10 root@Worker2:/usr/etc/zookeeper-3.4.10

  3.一、修改data目錄下的myid文件,Worker1上的內容爲1,Worker2上的內容爲2。日誌

四、在Master、Worker一、Worker2上配置系統環境變量:code

vi /etc/profile
增長Zookeeper內容:
exprot ZOOKEEPER_HOME=/usr/etc/zookeeper-3.4.10
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$HIVE_HOME/bin:$SCALA_HOME/bin:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH

五、在Master、Worker一、Worker2上運行Zookeeperserver

  ./bin/zkServer.sh start
  運行./bin/zkServer.sh status查看運行狀態,若有問題可經過安裝目錄下的zookeeper.out日誌文件排查。
  成功後,運行jps,可看到QuorumPeerMain進程blog

六、配置Spark
  vi /usr/etc/spark-2.3.0-bin-hadoop2.7/conf/spark-evn.sh
  修改內容以下:
  #export SPARK_MASTER_IP=Master #註釋掉該行,Spark本身管理集羣的狀態
  export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=Master:2181,Worker1:2181,Worker2:2181 -Dspark.deploy.zookeeper.dir=/spark" #經過Zookeeper管理集羣狀態

七、測試Spark集羣工做狀態
  7.一、啓動集羣
    在Master啓動hdfs:start-dfs.sh
    在Master啓動spark:/usr/etc/spark-2.3.0-bin-hadoop2.7/sbin/start-all.sh
    在Worker1,Worker2分別啓動spark-master:/usr/etc/spark-2.3.0-bin-hadoop2.7/sbin/start-master.sh
    在Master經過瀏覽器訪問Master:8080,Worker1:8080,Worker2:8080,Spark Master的運行狀態在Master上是 ALIVE,在Worker1,Worker2上是STANDBY

  7.二、測試Master節點出故障的狀況     7.2.一、在任意節點上運行spark-shell:/usr/etc/spark-2.3.0-bin-hadoop2.7/bin/spark-shell --master spark://Master:7077,Worker1:7077,Worker2:7077     7.2.二、在Master上運行/usr/etc/spark-2.3.0-bin-hadoop2.7/sbin/stop-master.sh中止Master服務,發現spark-shell控制檯輸出如下內容:Connection to Master:7077 failed; waiting for master to reconnect...,過一會經過瀏覽器訪問Worker1:8080,發現此時Worker1機器上Spark Master的狀態已經變成了ALIVE。

相關文章
相關標籤/搜索