溫馨提示×

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

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

Spark啟動(dòng)時(shí)的master參數(shù)以及Spark的部署方法

發(fā)布時(shí)間:2021-07-09 17:11:45 來(lái)源:億速云 閱讀:908 作者:chen 欄目:編程語(yǔ)言

這篇文章主要講解了“Spark啟動(dòng)時(shí)的master參數(shù)以及Spark的部署方法”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Spark啟動(dòng)時(shí)的master參數(shù)以及Spark的部署方法”吧!

我們?cè)诔跏蓟疭parkConf時(shí),或者提交Spark任務(wù)時(shí),都會(huì)有master參數(shù)需要設(shè)置,如下:

 
  1.  

    conf = SparkConf().setAppName(appName).setMaster(master)      

  2.  

    sc = SparkContext(conf=conf)      

 
  1.  

    /bin/spark-submit \      

  2.  

    --cluster cluster_name \      

  3.  

    --master yarn-cluster \      

  4.  

    ...      

但是這個(gè)master到底是何含義呢?文檔說(shuō)是設(shè)定master url,但是啥是master url呢?說(shuō)到這就必須先要了解下Spark的部署方式了。

我們要部署Spark這套計(jì)算框架,有多種方式,可以部署到一臺(tái)計(jì)算機(jī),也可以是多臺(tái)(cluster)。我們要去計(jì)算數(shù)據(jù),就必須要有計(jì)算機(jī)幫我們計(jì)算,當(dāng)然計(jì)算機(jī)越多(集群規(guī)模越大),我們的計(jì)算力就越強(qiáng)。但有時(shí)候我們只想在本機(jī)做個(gè)試驗(yàn)或者小型的計(jì)算,因此直接部署在單機(jī)上也是可以的。Spark部署方式可以用如下圖形展示:

Spark啟動(dòng)時(shí)的master參數(shù)以及Spark的部署方法

下面我們就來(lái)分別介紹下。

Local模式

Local模式就是運(yùn)行在一臺(tái)計(jì)算機(jī)上的模式,通常就是用于在本機(jī)上練手和測(cè)試。它可以通過(guò)以下集中方式設(shè)置master。

  • local: 所有計(jì)算都運(yùn)行在一個(gè)線程當(dāng)中,沒(méi)有任何并行計(jì)算,通常我們?cè)诒緳C(jī)執(zhí)行一些測(cè)試代碼,或者練手,就用這種模式。

  • local[K]: 指定使用幾個(gè)線程來(lái)運(yùn)行計(jì)算,比如local[4]就是運(yùn)行4個(gè)worker線程。通常我們的cpu有幾個(gè)core,就指定幾個(gè)線程,最大化利用cpu的計(jì)算能力

  • local[*]: 這種模式直接幫你按照cpu最多cores來(lái)設(shè)置線程數(shù)了。

使用示例:

 
  1.  

    /bin/spark-submit \      

  2.  

    --cluster cluster_name \      

  3.  

    --master local[*] \      

  4.  

    ...      

總而言之這幾種local模式都是運(yùn)行在本地的單機(jī)版模式,通常用于練手和測(cè)試,而實(shí)際的大規(guī)模計(jì)算就需要下面要介紹的cluster模式。

cluster模式

cluster模式肯定就是運(yùn)行很多機(jī)器上了,但是它又分為以下三種模式,區(qū)別在于誰(shuí)去管理資源調(diào)度。(說(shuō)白了,就好像后勤管家,哪里需要資源,后勤管家要負(fù)責(zé)調(diào)度這些資源)

standalone模式

這種模式下,Spark會(huì)自己負(fù)責(zé)資源的管理調(diào)度。它將cluster中的機(jī)器分為master機(jī)器和worker機(jī)器,master通常就一個(gè),可以簡(jiǎn)單的理解為那個(gè)后勤管家,worker就是負(fù)責(zé)干計(jì)算任務(wù)活的苦勞力。具體怎么配置可以參考Spark Standalone Mode

使用standalone模式示例:

 
  1.  

    /bin/spark-submit \      

  2.  

    --cluster cluster_name \      

  3.  

    --master spark://host:port \      

  4.  

    ...      

--master就是指定master那臺(tái)機(jī)器的地址和端口,我想這也正是--master參數(shù)名稱的由來(lái)吧。

mesos模式

這里就很好理解了,如果使用mesos來(lái)管理資源調(diào)度,自然就應(yīng)該用mesos模式了,示例如下:

 
  1.  

    /bin/spark-submit \      

  2.  

    --cluster cluster_name \      

  3.  

    --master mesos://host:port \      

  4.  

    ...      

yarn模式

同樣,如果采用yarn來(lái)管理資源調(diào)度,就應(yīng)該用yarn模式,由于很多時(shí)候我們需要和mapreduce使用同一個(gè)集群,所以都采用Yarn來(lái)管理資源調(diào)度,這也是生產(chǎn)環(huán)境大多采用yarn模式的原因。yarn模式又分為yarn cluster模式和yarn client模式:

  • yarn cluster: 這個(gè)就是生產(chǎn)環(huán)境常用的模式,所有的資源調(diào)度和計(jì)算都在集群環(huán)境上運(yùn)行。

  • yarn client: 這個(gè)是說(shuō)Spark Driver和ApplicationMaster進(jìn)程均在本機(jī)運(yùn)行,而計(jì)算任務(wù)在cluster上。

使用示例:

 
  1.  

    /bin/spark-submit \      

  2.  

    --cluster cluster_name \      

  3.  

    --master yarn-cluster \      

  4.  

    ...      

感謝各位的閱讀,以上就是“Spark啟動(dòng)時(shí)的master參數(shù)以及Spark的部署方法”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Spark啟動(dòng)時(shí)的master參數(shù)以及Spark的部署方法這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向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