日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Spark On Yarn 运行模式(详细)

發(fā)布時間:2023/12/19 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spark On Yarn 运行模式(详细) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Spark?

在spark 中,支持4中運(yùn)行模式:

1)Local:開發(fā)時使用

2)Standalone: 是spark 自帶的,如果一個集群是standalong 的話,那么就需要在多臺機(jī)器上同時部署spark 環(huán)境

3)Yarn:建議大家在生產(chǎn)上使用該模式,統(tǒng)一使用yarn 進(jìn)行整個集群作業(yè)(mr、spark)的資源調(diào)度

4)Mesos :跟yarn使用一樣都是資源調(diào)度

不管使用什么模式,spark應(yīng)用程序的代碼都是一模一樣的,只需要在提交的時候通過--master 參數(shù)來指定我們的運(yùn)行模式即可

Client

Driver運(yùn)行在client端(提交spark作業(yè)的機(jī)器)

client會和請求到container進(jìn)行通信來完成作業(yè)的調(diào)度和執(zhí)行,client是不能退出的

日志信息會在控制臺輸出:便于我們測試

Cluster

Driver運(yùn)行在ApplicationMaster 中

Client 只要提交完作業(yè)之后就可以關(guān)掉,因?yàn)樽鳂I(yè)已經(jīng)在YARN上運(yùn)行了

日志在終端看不到的,因?yàn)槿罩臼窃贒river 上,只能通過yarn logs -applicationIdapplication_id

1.配置

安裝Hadoop:需要安裝HDFS模塊和YARN模塊,spark運(yùn)行時要把jar包放到HDFS上。

安裝Spark:不需要啟動Spark集群,在client節(jié)點(diǎn)配置中spark-env.sh添加JDK和HADOOP_CONF_DIR目錄,Spark程序?qū)⒆鳛閥arn的客戶端用戶提交任務(wù)。

export JAVA_HOME=/usr/local/jdk1.8.0_161export HADOOP_CONF_DIR=/usr/local/src/hadoop-2.6.1/etc/hadoop

啟動HDFS和YARN

?2.yarn-client和yarn-cluster提交任務(wù)的方式

client模式:

./bin/spark-submit \

--master yarn \

--driver-memory 1g \

--executor-memory 1g \

--executor-cores 2 \

--class org.apache.spark.examples.SparkPi \

examples/jars/spark-examples_2.11-2.0.2.jar \

1000

--master yarn(默認(rèn)client模式) 等價于 yarn-client(已棄用)和--master yarn?--deploy-mode client

spark-shell和pypark必須使用yarn-client模式,因?yàn)檫@是交互式命令,Driver需運(yùn)行在本地。

cluster模式:

./bin/spark-submit \

--master yarn \

--deploy-mode cluster \

--class org.apache.spark.examples.SparkPi? \

examples/jars/spark-examples_2.11-2.0.2.jar \

1000

3.兩種模式的區(qū)別

cluster模式:Driver程序在YARN中運(yùn)行,Driver所在的機(jī)器是隨機(jī)的,應(yīng)用的運(yùn)行結(jié)果不能在客戶端顯示只能通過yarn查看,所以最好運(yùn)行那些將結(jié)果最終保存在外部存儲介質(zhì)(如HDFS、Redis、Mysql)而非stdout輸出的應(yīng)用程序,客戶端的終端顯示的僅是作為YARN的job的簡單運(yùn)行狀況。

client模式:Driver運(yùn)行在Client上,應(yīng)用程序運(yùn)行結(jié)果會在客戶端顯示,所有適合運(yùn)行結(jié)果有輸出的應(yīng)用程序(如spark-shell)

4.原理

cluster模式:

?

Spark Driver首先作為一個ApplicationMaster在YARN集群中啟動,客戶端提交給ResourceManager的每一個job都會在集群的NodeManager節(jié)點(diǎn)上分配一個唯一的ApplicationMaster,由該ApplicationMaster管理全生命周期的應(yīng)用。具體過程:

?1.?由client向ResourceManager提交請求,并上傳jar到HDFS上

這期間包括四個步驟:

a).連接到RM

b).從RM的ASM(ApplicationsManager?)中獲得metric、queue和resource等信息。

c). upload app jar and spark-assembly jar

d).設(shè)置運(yùn)行環(huán)境和container上下文(launch-container.sh等腳本)

2. ResouceManager向NodeManager申請資源,創(chuàng)建Spark ApplicationMaster(每個SparkContext都有一個ApplicationMaster)

3. NodeManager啟動ApplicationMaster,并向ResourceManager AsM注冊

4. ApplicationMaster從HDFS中找到j(luò)ar文件,啟動SparkContext、DAGscheduler和YARN Cluster Scheduler

5. ResourceManager向ResourceManager AsM注冊申請container資源

6. ResourceManager通知NodeManager分配Container,這時可以收到來自ASM關(guān)于container的報告。(每個container對應(yīng)一個executor)

7. Spark ApplicationMaster直接和container(executor)進(jìn)行交互,完成這個分布式任務(wù)。

client模式:

?

?

在client模式下,Driver運(yùn)行在Client上,通過ApplicationMaster向RM獲取資源。本地Driver負(fù)責(zé)與所有的executor container進(jìn)行交互,并將最后的結(jié)果匯總。結(jié)束掉終端,相當(dāng)于kill掉這個spark應(yīng)用。一般來說,如果運(yùn)行的結(jié)果僅僅返回到terminal上時需要配置這個。

客戶端的Driver將應(yīng)用提交給Yarn后,Yarn會先后啟動ApplicationMaster和executor,另外ApplicationMaster和executor都 是裝載在container里運(yùn)行,container默認(rèn)的內(nèi)存是1G,ApplicationMaster分配的內(nèi)存是driver- memory,executor分配的內(nèi)存是executor-memory。同時,因?yàn)镈river在客戶端,所以程序的運(yùn)行結(jié)果可以在客戶端顯 示,Driver以進(jìn)程名為SparkSubmit的形式存在。

?

在client模式下,Driver運(yùn)行在Client上,通過ApplicationMaster向RM獲取資源。本地Driver負(fù)責(zé)與所有的executor container進(jìn)行交互,并將最后的結(jié)果匯總。結(jié)束掉終端,相當(dāng)于kill掉這個spark應(yīng)用。一般來說,如果運(yùn)行的結(jié)果僅僅返回到terminal上時需要配置這個。

客戶端的Driver將應(yīng)用提交給Yarn后,Yarn會先后啟動ApplicationMaster和executor,另外ApplicationMaster和executor都 是裝載在container里運(yùn)行,container默認(rèn)的內(nèi)存是1G,ApplicationMaster分配的內(nèi)存是driver- memory,executor分配的內(nèi)存是executor-memory。同時,因?yàn)镈river在客戶端,所以程序的運(yùn)行結(jié)果可以在客戶端顯 示,Driver以進(jìn)程名為SparkSubmit的形式存在。

?

總結(jié)

以上是生活随笔為你收集整理的Spark On Yarn 运行模式(详细)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。