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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Spark-on-YARN (来自学习笔记)

發布時間:2024/9/27 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spark-on-YARN (来自学习笔记) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spark-on-YARN

1.??? 官方文檔

http://spark.apache.org/docs/latest/running-on-yarn.html

2.??? 配置安裝

1.安裝hadoop:需要安裝HDFS模塊和YARN模塊,HDFS必須安裝,spark運行時要把jar包存放到HDFS上。

2.安裝Spark:解壓Spark安裝程序到一臺服務器上,修改spark-env.sh配置文件,spark程序將作為YARN的客戶端用于提交任務

export JAVA_HOME=/usr/local/jdk1.7.0_80

export HADOOP_CONF_DIR=/usr/local/hadoop-2.6.4/etc/hadoop

3.啟動HDFS和YARN

3.??? 運行模式(cluster模式和client模式)

1.cluster模式

./bin/spark-submit--class org.apache.spark.examples.SparkPi \

--master yarn \

--deploy-mode cluster \

--driver-memory 1g \

--executor-memory 1g \

--executor-cores 2 \

--queue default \

lib/spark-examples*.jar\

10

?

---------------------------------------------------------------------------------------------------------------------------------

./bin/spark-submit--class cn.toto.spark.day1.WordCount \

--master yarn \

--deploy-mode cluster \

--driver-memory 1g \

--executor-memory 1g \

--executor-cores 2 \

--queue default \

/home/bigdata/hello-spark-1.0.jar\

hdfs://mycluster/wchdfs://mycluster/out-yarn-1

?

注意:hdfs的上面的端口默認是9000

?

2.client模式

./bin/spark-submit--class org.apache.spark.examples.SparkPi \

--master yarn \

--deploy-mode client \

--driver-memory 1g \

--executor-memory 1g \

--executor-cores 2 \

--queue default \

lib/spark-examples*.jar\

10

?

spark-shell必須使用client模式

./bin/spark-shell--master yarn --deploy-mode client

?

3.兩種模式的區別

cluster模式:Driver程序在YARN中運行,應用的運行結果不能在客戶端顯示,所以最好運行那些將結果最終保存在外部存儲介質(如HDFS、Redis、Mysql)而非stdout輸出的應用程序,客戶端的終端顯示的僅是作為YARN的job的簡單運行狀況。

?

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

?

4.原理

cluster模式:


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

?

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

這期間包括四個步驟:

a).連接到RM

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

c). upload app jar and spark-assembly jar

d).設置運行環境和container上下文(launch-container.sh等腳本)

?

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

3. NodeManager啟動ApplicationMaster,并向ResourceManagerAsM注冊

4. ApplicationMaster從HDFS中找到jar文件,啟動SparkContext、DAGscheduler和YARN ClusterScheduler

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

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

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

?

client模式:


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

?

客戶端的Driver將應用提交給Yarn后,Yarn會先后啟動ApplicationMaster和executor,另外ApplicationMaster和executor都是裝載在container里運行,container默認的內存是1G,ApplicationMaster分配的內存是driver- memory,executor分配的內存是executor-memory。同時,因為Driver在客戶端,所以程序的運行結果可以在客戶端顯示,Driver以進程名為SparkSubmit的形式存在。

總結

以上是生活随笔為你收集整理的Spark-on-YARN (来自学习笔记)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。