溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spark 系列(七)—— 基于 ZooKeeper 搭建 Spark 高可用集群

發布時間:2020-06-16 21:49:09 來源:網絡 閱讀:366 作者:heibaiying 欄目:大數據

一、集群規劃

這里搭建一個 3 節點的 Spark 集群,其中三臺主機上均部署 Worker 服務。同時為了保證高可用,除了在 hadoop001 上部署主 Master 服務外,還在 hadoop002 和 hadoop003 上分別部署備用的 Master 服務,Master 服務由 Zookeeper 集群進行協調管理,如果主 Master 不可用,則備用 Master 會成為新的主 Master。

Spark 系列(七)—— 基于 ZooKeeper 搭建 Spark 高可用集群

二、前置條件

搭建 Spark 集群前,需要保證 JDK 環境、Zookeeper 集群和 Hadoop 集群已經搭建,相關步驟可以參閱:

  • Linux 環境下 JDK 安裝
  • Zookeeper 單機環境和集群環境搭建
  • Hadoop 集群環境搭建

三、Spark集群搭建

3.1 下載解壓

下載所需版本的 Spark,官網下載地址:http://spark.apache.org/downloads.html

Spark 系列(七)—— 基于 ZooKeeper 搭建 Spark 高可用集群

下載后進行解壓:

# tar -zxvf  spark-2.2.3-bin-hadoop2.6.tgz

3.2 配置環境變量

# vim /etc/profile

添加環境變量:

export SPARK_HOME=/usr/app/spark-2.2.3-bin-hadoop2.6
export  PATH=${SPARK_HOME}/bin:$PATH

使得配置的環境變量立即生效:

# source /etc/profile

3.3 集群配置

進入 ${SPARK_HOME}/conf 目錄,拷貝配置樣本進行修改:

1. spark-env.sh
 cp spark-env.sh.template spark-env.sh
# 配置JDK安裝位置
JAVA_HOME=/usr/java/jdk1.8.0_201
# 配置hadoop配置文件的位置
HADOOP_CONF_DIR=/usr/app/hadoop-2.6.0-cdh6.15.2/etc/hadoop
# 配置zookeeper地址
SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop001:2181,hadoop002:2181,hadoop003:2181 -Dspark.deploy.zookeeper.dir=/spark"
2. slaves
cp slaves.template slaves

配置所有 Woker 節點的位置:

hadoop001
hadoop002
hadoop003

3.4 安裝包分發

將 Spark 的安裝包分發到其他服務器,分發后建議在這兩臺服務器上也配置一下 Spark 的環境變量。

scp -r /usr/app/spark-2.4.0-bin-hadoop2.6/   hadoop002:usr/app/
scp -r /usr/app/spark-2.4.0-bin-hadoop2.6/   hadoop003:usr/app/

四、啟動集群

4.1 啟動ZooKeeper集群

分別到三臺服務器上啟動 ZooKeeper 服務:

 zkServer.sh start

4.2 啟動Hadoop集群

# 啟動dfs服務
start-dfs.sh
# 啟動yarn服務
start-yarn.sh

4.3 啟動Spark集群

進入 hadoop001 的 ${SPARK_HOME}/sbin 目錄下,執行下面命令啟動集群。執行命令后,會在 hadoop001 上啟動 Maser 服務,會在 slaves 配置文件中配置的所有節點上啟動 Worker 服務。

start-all.sh

分別在 hadoop002 和 hadoop003 上執行下面的命令,啟動備用的 Master 服務:

# ${SPARK_HOME}/sbin 下執行
start-master.sh

4.4 查看服務

查看 Spark 的 Web-UI 頁面,端口為 8080。此時可以看到 hadoop001 上的 Master 節點處于 ALIVE 狀態,并有 3 個可用的 Worker 節點。

Spark 系列(七)—— 基于 ZooKeeper 搭建 Spark 高可用集群

而 hadoop002 和 hadoop003 上的 Master 節點均處于 STANDBY 狀態,沒有可用的 Worker 節點。

Spark 系列(七)—— 基于 ZooKeeper 搭建 Spark 高可用集群

Spark 系列(七)—— 基于 ZooKeeper 搭建 Spark 高可用集群

五、驗證集群高可用

此時可以使用 kill 命令殺死 hadoop001 上的 Master 進程,此時備用 Master 會中會有一個再次成為 主 Master,我這里是 hadoop002,可以看到 hadoop2 上的 Master 經過 RECOVERING 后成為了新的主 Master,并且獲得了全部可以用的 Workers。

Spark 系列(七)—— 基于 ZooKeeper 搭建 Spark 高可用集群

Hadoop002 上的 Master 成為主 Master,并獲得了全部可以用的 Workers。

Spark 系列(七)—— 基于 ZooKeeper 搭建 Spark 高可用集群

此時如果你再在 hadoop001 上使用 start-master.sh 啟動 Master 服務,那么其會作為備用 Master 存在。

六、提交作業

和單機環境下的提交到 Yarn 上的命令完全一致,這里以 Spark 內置的計算 Pi 的樣例程序為例,提交命令如下:

spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
--executor-memory 1G \
--num-executors 10 \
/usr/app/spark-2.4.0-bin-hadoop2.6/examples/jars/spark-examples_2.11-2.4.0.jar \
100

更多大數據系列文章可以參見 GitHub 開源項目大數據入門指南

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女