新聞中心
這篇文章給大家介紹Spark+Zookeeper怎么搭建高可用Spark集群,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是創(chuàng)新互聯(lián)的服務(wù)宗旨!把網(wǎng)站當作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個不僅審美在線,而且實用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無止境。
Spark三種分布式部署方式比較
目前Apache Spark支持三種分布式部署方式,分別是standalone、spark on mesos和 spark on YARN,詳情參考。
Spark standalone模式分布式部署
環(huán)境介紹
主機名 | 應(yīng)用 |
---|---|
tvm11 | zookeeper |
tvm12 | zookeeper |
tvm13 | zookeeper、spark(master)、spark(slave)、Scala |
tvm14 | spark(backup)、spark(slave)、Scala |
tvm15 | spark(slave)、Scala |
說明
依賴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結(jié)點存在單點故障,所以要借助zookeeper,至少啟動兩臺Master結(jié)點來實現(xiàn)高可用,配置方案比較簡單。
安裝scala
由上面的說明可知,spark對scala版本依賴較為嚴格,spark-2.4.5依賴scala-2.12.x,所以首先要安裝scala-2.12.x,在此選用scala-2.12.10。使用二進制安裝:
下載安裝包
解壓即用。
$ 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
如果系統(tǒng)環(huán)境也要使用相同版本的scala,可以將其加入到用戶環(huán)境變量(.bashrc或.bash_profile
)。
安裝spark
打通三臺spark機器的work用戶ssh通道;
現(xiàn)在安裝包到master機器:tvm13;
下載地址
注意提示信息,及Hadoop版本(與已有環(huán)境匹配,如果不匹配則選非預(yù)編譯的版本自己編譯)。
解壓到安裝目錄即可。
配置spark
spark服務(wù)配置文件主要有兩個:spark-env.sh和slaves。
spark-evn.sh:配置spark運行相關(guān)環(huán)境變量
slaves:指定worker服務(wù)器
配置spark-env.sh:cp spark-env.sh.template spark-env.sh
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" # 關(guān)于 SPARK_DAEMON_JAVA_OPTS 參數(shù)含義: # -Dspark.deploy.recoverMode=ZOOKEEPER #代表發(fā)生故障使用zookeeper服務(wù) # -Dspark.depoly.zookeeper.url=master.hadoop,slave1.hadoop,slave1.hadoop #主機名的名字 # -Dspark.deploy.zookeeper.dir=/spark #spark要在zookeeper上寫數(shù)據(jù)時的保存目錄 # 其他參數(shù)含義:https://blog.csdn.net/u010199356/article/details/89056304
配置slaves:cp slaves.template slaves
# A Spark Worker will be started on each of the machines listed below. tvm13 tvm14 tvm15
配置 spark-default.sh
,主要用于spark執(zhí)行任務(wù)(可以命令行動態(tài)指定):
# http://spark.apache.org/docs/latest/configuration.html#configuring-logging # spark-defaults.sh spark.app.name YunTuSpark spark.driver.cores 2 spark.driver.memory 2g spark.master spark://tvm13:7077,tvm14:7077 spark.eventLog.enabled true spark.eventLog.dir hdfs://cluster01/tmp/event/logs spark.serializer org.apache.spark.serializer.KryoSerializer spark.serializer.objectStreamReset 100 spark.executor.logs.rolling.time.interval daily spark.executor.logs.rolling.maxRetainedFiles 30 spark.ui.enabled true spark.ui.killEnabled true spark.ui.liveUpdate.period 100ms spark.ui.liveUpdate.minFlushPeriod 3s spark.ui.port 4040 spark.history.ui.port 18080 spark.ui.retainedJobs 100 spark.ui.retainedStages 100 spark.ui.retainedTasks 1000 spark.ui.showConsoleProgress true spark.worker.ui.retainedExecutors 100 spark.worker.ui.retainedDrivers 100 spark.sql.ui.retainedExecutions 100 spark.streaming.ui.retainedBatches 100 spark.ui.retainedDeadExecutors 100 # spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"
hdfs資源準備
因為 spark.eventLog.dir
指定為hdfs存儲,所以需要在hdfs預(yù)先創(chuàng)建相應(yīng)的目錄文件:
hdfs dfs -mkdir -p hdfs://cluster01/tmp/event/logs
配置系統(tǒng)環(huán)境變量
編輯 ~/.bashrc
:
export SPARK_HOME=/data/template/s/spark/spark-2.4.5-bin-hadoop2.7 export PATH=$SPARK_HOME/bin/:$PATH
分發(fā)
以上配置完成后,將 /path/to/spark-2.4.5-bin-hadoop2.7
分發(fā)至各個slave節(jié)點,并配置各個節(jié)點的環(huán)境變量。
啟動
先在master節(jié)點啟動所有服務(wù):
./sbin/start-all.sh
然后在backup節(jié)點單獨啟動master服務(wù):
./sbin/start-master.sh
查看狀態(tài)
啟動完成后到web去查看:
master(8081端口):Status: ALIVE
backup(8080端口):Status: STANDBY
完成!
關(guān)于Spark+Zookeeper怎么搭建高可用Spark集群就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
分享標題:Spark+Zookeeper怎么搭建高可用Spark集群
標題網(wǎng)址:http://fisionsoft.com.cn/article/gosjhd.html