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

一、集群規(guī)劃

這里搭建一個(gè) 3 節(jié)點(diǎn)的 Spark 集群,其中三臺(tái)主機(jī)上均部署 Worker 服務(wù)。同時(shí)為了保證高可用,除了在 hadoop001 上部署主 Master 服務(wù)外,還在 hadoop002 和 hadoop003 上分別部署備用的 Master 服務(wù),Master 服務(wù)由 Zookeeper 集群進(jìn)行協(xié)調(diào)管理,如果主 Master 不可用,則備用 Master 會(huì)成為新的主 Master

創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比屏邊網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式屏邊網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋屏邊地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴(lài)。

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

二、前置條件

搭建 Spark 集群前,需要保證 JDK 環(huán)境、Zookeeper 集群和 Hadoop 集群已經(jīng)搭建,相關(guān)步驟可以參閱:

  • Linux 環(huán)境下 JDK 安裝
  • Zookeeper 單機(jī)環(huán)境和集群環(huán)境搭建
  • Hadoop 集群環(huán)境搭建

三、Spark集群搭建

3.1 下載解壓

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

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

下載后進(jìn)行解壓:

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

3.2 配置環(huán)境變量

# vim /etc/profile

添加環(huán)境變量:

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

使得配置的環(huán)境變量立即生效:

# source /etc/profile

3.3 集群配置

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

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 節(jié)點(diǎn)的位置:

hadoop001
hadoop002
hadoop003

3.4 安裝包分發(fā)

將 Spark 的安裝包分發(fā)到其他服務(wù)器,分發(fā)后建議在這兩臺(tái)服務(wù)器上也配置一下 Spark 的環(huán)境變量。

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/

四、啟動(dòng)集群

4.1 啟動(dòng)ZooKeeper集群

分別到三臺(tái)服務(wù)器上啟動(dòng) ZooKeeper 服務(wù):

 zkServer.sh start

4.2 啟動(dòng)Hadoop集群

# 啟動(dòng)dfs服務(wù)
start-dfs.sh
# 啟動(dòng)yarn服務(wù)
start-yarn.sh

4.3 啟動(dòng)Spark集群

進(jìn)入 hadoop001 的 ${SPARK_HOME}/sbin 目錄下,執(zhí)行下面命令啟動(dòng)集群。執(zhí)行命令后,會(huì)在 hadoop001 上啟動(dòng) Maser 服務(wù),會(huì)在 slaves 配置文件中配置的所有節(jié)點(diǎn)上啟動(dòng) Worker 服務(wù)。

start-all.sh

分別在 hadoop002 和 hadoop003 上執(zhí)行下面的命令,啟動(dòng)備用的 Master 服務(wù):

# ${SPARK_HOME}/sbin 下執(zhí)行
start-master.sh

4.4 查看服務(wù)

查看 Spark 的 Web-UI 頁(yè)面,端口為 8080。此時(shí)可以看到 hadoop001 上的 Master 節(jié)點(diǎn)處于 ALIVE 狀態(tài),并有 3 個(gè)可用的 Worker 節(jié)點(diǎn)。

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

而 hadoop002 和 hadoop003 上的 Master 節(jié)點(diǎn)均處于 STANDBY 狀態(tài),沒(méi)有可用的 Worker 節(jié)點(diǎn)。

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

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

五、驗(yàn)證集群高可用

此時(shí)可以使用 kill 命令殺死 hadoop001 上的 Master 進(jìn)程,此時(shí)備用 Master 會(huì)中會(huì)有一個(gè)再次成為 主 Master,我這里是 hadoop002,可以看到 hadoop2 上的 Master 經(jīng)過(guò) RECOVERING 后成為了新的主 Master,并且獲得了全部可以用的 Workers。

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

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

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

此時(shí)如果你再在 hadoop001 上使用 start-master.sh 啟動(dòng) Master 服務(wù),那么其會(huì)作為備用 Master 存在。

六、提交作業(yè)

和單機(jī)環(huán)境下的提交到 Yarn 上的命令完全一致,這里以 Spark 內(nèi)置的計(jì)算 Pi 的樣例程序?yàn)槔?,提交命令如下?/p>

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

更多大數(shù)據(jù)系列文章可以參見(jiàn) GitHub 開(kāi)源項(xiàng)目大數(shù)據(jù)入門(mén)指南

分享題目:Spark系列(七)——基于ZooKeeper搭建Spark高可用集群
URL網(wǎng)址:http://muchs.cn/article36/pjjepg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、外貿(mào)建站、微信小程序搜索引擎優(yōu)化、網(wǎng)站營(yíng)銷(xiāo)、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司