03.02 Spark+Zookeeper搭建高可用Spark集群

Spark三種分佈式部署方式比較

目前Apache Spark支持三種分佈式部署方式,分別是standalone、spark on mesos和 spark on YARN

Spark standalone模式分佈式部署

環境介紹

Spark+Zookeeper搭建高可用Spark集群

說明

  • 依賴scala: Note that support for Java 7, Python 2.6 and old Hadoop versions before 2.6.5 were removed as of Spark 2.2.0. Support for Scala 2.10 was removed as of 2.3.0. Support for Scala 2.11 is deprecated as of Spark 2.4.1 and will be removed in Spark 3.0.
  • zookeeper: Master結點存在單點故障,所以要藉助zookeeper,至少啟動兩臺Master結點來實現高可用,配置方案比較簡單。

安裝scala

由上面的說明可知,spark對scala版本依賴較為嚴格,spark-2.4.5依賴scala-2.12.x,所以首先要安裝scala-2.12.x,在此選用scala-2.12.10。使用二進制安裝:

  • 下載安裝包
  • 解壓即用。
<code>$ wget https://downloads.lightbend.com/scala/2.12.10/scala-2.12.10.tgz
$ tar zxvf scala-2.12.10.tgz -C /path/to/scala_install_dir
/<code>

如果系統環境也要使用相同版本的scala,可以將其加入到用戶環境變量(.bashrc或.bash_profile)。

安裝spark

  • 打通三臺spark機器的work用戶ssh通道;
  • 現在安裝包到master機器:tvm13;
  • 下載地址
  • 注意提示信息。
Spark+Zookeeper搭建高可用Spark集群

  • 解壓到安裝目錄即可。

配置spark

spark服務配置文件主要有兩個:spark-env.sh和slaves。

  • spark-evn.sh:配置spark運行相關環境變量
  • slaves:指定worker服務器

配置spark-env.sh:cp spark-env.sh.template spark-env.sh

<code>export JAVA_HOME=/data/template/j/java/jdk1.8.0_201
export SCALA_HOME=/data/template/s/scala/scala-2.12.10
export SPARK_WORKER_MEMORY=2048m
export SPARK_WORKER_CORES=2
export SPARK_WORKER_INSTANCES=2
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=tvm11:2181,tvm12:2181,tvm13:2181 -Dspark.deploy.zookeeper.dir=/data/template/s/spark"

# 關於 SPARK_DAEMON_JAVA_OPTS 參數含義:
\t# -Dspark.deploy.recoverMode=ZOOKEEPER #代表發生故障使用zookeeper服務
\t# -Dspark.depoly.zookeeper.url=master.hadoop,slave1.hadoop,slave1.hadoop #主機名的名字
\t# -Dspark.deploy.zookeeper.dir=/spark #spark要在zookeeper上寫數據時的保存目錄

# 其他參數含義:https://blog.csdn.net/u010199356/article/details/89056304
/<code>

配置slaves:cp slaves.template slaves

<code># A Spark Worker will be started on each of the machines listed below.
tvm13
tvm14
tvm15
/<code>

配置系統環境變量

<code>export SPARK_HOME=/data/template/s/spark/spark-2.4.5-bin-hadoop2.7
export PATH=$SPARK_HOME/bin/:$PATH
/<code>

分發

以上配置完成後,將 /path/to/spark-2.4.5-bin-hadoop2.7 分發至各個slave節點,並配置各個節點的環境變量。

啟動

  • 先在master節點啟動所有服務:./sbin/start-all.sh
  • 然後在backup節點單獨啟動master服務:./sbin/start-master.sh

查看狀態

啟動完成後到web去查看:

  • master(8081端口):Status: ALIVE
  • backup(8080端口):Status: STANDBY

完成!


分享到:


相關文章: