溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Spark集群怎么部署

發(fā)布時(shí)間:2021-08-25 10:01:13 來(lái)源:億速云 閱讀:146 作者:chen 欄目:云計(jì)算

本篇內(nèi)容介紹了“Spark集群怎么部署”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

本文將接受 Spark 集群的部署方式,包括無(wú) HA、Spark Standalone HA 和 基于 ZooKeeper 的 HA 三種。
環(huán)境:CentOS6.6 、 JDK1.7.0_80 、 關(guān)閉防火墻 、 配置好 hosts 和 SSH 免密碼、Spark1.5.0

一. 無(wú) HA 方式
1. 主機(jī)名與角色的對(duì)應(yīng)關(guān)系:
node1.zhch    Master
node2.zhch    Slave
node3.zhch    Slave

2. 解壓 Spark 部署包(可以從官網(wǎng)直接下載部署包,也可從官網(wǎng)下載源碼再 編譯出部署包)
[yyl@node1 program]$ tar -zxf spark-1.5.0-bin-2.5.2.tgz 

3. 修改配置文件

[yyl@node1 program]$ cd spark-1.5.0-bin-2.5.2/conf/
[yyl@node1 conf]$ cp slaves.template slaves
[yyl@node1 conf]$ vim slaves
node2.zhch
node3.zhch

[yyl@node1 conf]$ cp spark-env.sh.template spark-env.sh
[yyl@node1 conf]$ vim spark-env.sh
export JAVA_HOME=/usr/lib/java/jdk1.7.0_80
export SPARK_MASTER_IP=node1.zhch
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=1g


說(shuō)明:
SPARK_MASTER_IP :Master節(jié)點(diǎn)地址
SPARK_MASTER_PORT :Master端口號(hào)
SPARK_WORKER_CORES :每個(gè)worker的核心數(shù),一般設(shè)置成主機(jī)的CPU核心數(shù)
SPARK_WORKER_INSTANCES :每臺(tái)主機(jī)上運(yùn)行的worker數(shù)量
SPARK_WORKER_MEMORY :Spark作業(yè)允許使用的內(nèi)存總量(每個(gè)作業(yè)自己的內(nèi)存空間由屬性 spark.executor.memory 決定)

4. 分發(fā) Spark
[yyl@node1 program]$ scp -rp spark-1.5.0-bin-2.5.2 node2.zhch:~/program/
[yyl@node1 program]$ scp -rp spark-1.5.0-bin-2.5.2 node3.zhch:~/program/

5. 啟動(dòng)與停止命令
./sbin/start-master.sh  - 啟動(dòng) Master
./sbin/start-slaves.sh  - 啟動(dòng)所有的 Slave
./sbin/start-slave.sh spark://IP:PORT  - 啟動(dòng)本機(jī)的 Slave
./sbin/start-all.sh  - 啟動(dòng)所有的 Master 和 Slave
./sbin/stop-master.sh  - 停止 Master
./sbin/stop-slaves.sh  - 停止所有的 Slave
./sbin/stop-slave.sh  - 停止本機(jī)的 Slave
./sbin/stop-all.sh  - 停止所有的 Master 和 Slave

./bin/spark-shell --master spark://IP:PORT   - 運(yùn)行 Spark Shell
./bin/spark-submit --class packageName.MainClass --master spark://IP:PORT path/jarName.jar  - 提交作業(yè) 

二. Spark Standalone HA
只需要在無(wú) HA 的基礎(chǔ)上修改 conf/spark-env.sh 文件,添加如下一行即可:

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=FILESYSTEM -Dspark.deploy.recoveryDirectory=/home/yyl/program/spark-1.5.0-bin-2.5.2/recovery"


說(shuō)明:
  spark.deploy.recoveryMode   -- FILESYSTEM,表示開(kāi)啟基于文件系統(tǒng)的單節(jié)點(diǎn)恢復(fù)模式 ,默認(rèn)為 NONE
  spark.deploy.recoveryDirectory   -- Spark 保存恢復(fù)狀態(tài)的目錄

三. 基于 ZooKeeper 的 HA
1. 主機(jī)名與角色的對(duì)應(yīng)關(guān)系:
node1.zhch    Master、ZooKeeper
node2.zhch    Master、ZooKeeper
node3.zhch    Slave、ZooKeeper
node4.zhch    Slave
node5.zhch    Slave

2. 安裝 ZooKeeper 集群

3. 配置
與無(wú) HA 模式相比,conf/slaves 文件中仍然是配置所有的 Slave 節(jié)點(diǎn)地址;不同的是 conf/spark-env.sh 中 SPARK_MASTER_IP 不用配置,但要增加 SPARK_DAEMON_JAVA_OPTS 配置,內(nèi)容如下:

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node1.zhch:2181,node2.zhch:2181,node3.zhch:2181 -Dspark.deploy.zookeeper.dir=/spark"


說(shuō)明:
  spark.deploy.recoveryMode  -- ZOOKEEPER,表示開(kāi)啟基于 ZooKeeper 的 HA
  park.deploy.zookeeper.url  -- ZooKeeper URL
  spark.deploy.zookeeper.dir  -- ZooKeeper 保存恢復(fù)狀態(tài)的目錄,缺省為 /spark

配置好 HA 后,由于 master 有多個(gè),在用到 spark url 的地方列出所有的 master,例如:
./bin/spark-shell --master spark://host1:port1,host2:port2,host3:port3

5. 驗(yàn)證 HA
首先啟動(dòng) Zookeeper 集群;然后在 node1 節(jié)點(diǎn)上運(yùn)行 sbin/start-all.sh 命令啟動(dòng) Spark 集群。最后使用 jps 命令查看,只在 node1 節(jié)點(diǎn)上發(fā)現(xiàn)了 Master 進(jìn)程,而 node2 節(jié)點(diǎn)上沒(méi)有,這時(shí)需要在 node2 節(jié)點(diǎn)上使用 sbin/start-master.sh 命令來(lái)啟動(dòng)備 Master 進(jìn)程,這樣便實(shí)現(xiàn)了 Master HA
Spark集群怎么部署
Spark集群怎么部署
kill 掉 node1 節(jié)點(diǎn)上的 master 進(jìn)程后:
Spark集群怎么部署

“Spark集群怎么部署”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI