欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Spark基礎(chǔ)面試題有哪些

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

創(chuàng)新互聯(lián)10多年企業(yè)網(wǎng)站建設(shè)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站建設(shè)及推廣,對咖啡廳設(shè)計(jì)等多個行業(yè)擁有多年的網(wǎng)站營銷經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。

① 面試題:簡述 Spark 的架構(gòu)與作業(yè)提交流程(畫圖講解,注明各個部分的作用)

Spark基礎(chǔ)面試題有哪些        Spark基礎(chǔ)面試題有哪些

兩張圖一起看,左側(cè)圖是簡化版,右側(cè)圖較完整。

YARN-Cluster任務(wù)提交流程:

  • 1 由client向RM提交請求,并上傳jar到HDFS上 ;

  • 2 RM選擇一個NM創(chuàng)建SparkAppMaster(AM),AM啟動Driver(即初始化sc);

  • 3 AM向RM申請資源;

  • 4 RM給AM返回資源列表;

  • 5 AM申請啟動Executor;

  • 6 Executor向AM反向注冊;

    • Executor反向注冊完成后,AM就會知道自己有哪些資源可以用(Executor),然后就會去執(zhí)行job,拆分stage,提交stage的Task,進(jìn)行Task調(diào)度,分配到Executor上去執(zhí)行;

  • 7 AM分配任務(wù)給Executor執(zhí)行,Executor執(zhí)行任務(wù),并向AM匯報(bào)運(yùn)行的狀態(tài)和進(jìn)度;

  • 8 等到所有的任務(wù)執(zhí)行完畢后,AM 向 RM 申請注銷并關(guān)閉自己,釋放資源 ;

參考鏈接:https://www.jianshu.com/p/e1cf4c58ae35

Yarn模式,Spark客戶端直接連接Yarn,不需要額外構(gòu)建Spark集群。有yarn-client和yarn-cluster兩種模式,區(qū)別如下:

① 主要區(qū)別在于:Driver程序的運(yùn)行節(jié)點(diǎn)

  • yarn-client:Driver程序運(yùn)行在客戶端(本地),適用于交互、調(diào)試,希望立即看到app的輸出

  • yarn-cluster:Driver程序運(yùn)行在由RM(ResourceManager)啟動的AP(APPMaster),適用于生產(chǎn)環(huán)境。

② Driver的位置不同導(dǎo)致的性能的差異

  • Yarn-client的Driver運(yùn)行在本地,通常來說本地機(jī)器和Yarn集群不在同一個機(jī)房,性能不會很好;

  • yarn-cluster的Driver和Yarn集群運(yùn)行在同一個機(jī)房內(nèi),性能上來說會好一點(diǎn);

② 面試題:簡述 Spark 的兩種核心 Shuffle(HashShuffle 與 SortShuffle) 的工作流程(包括未優(yōu)化的 HashShuffle、優(yōu)化的 HashShuffle、普 通的 SortShuffle 與 bypass 的SortShuffle)

參考鏈接:https://www.jianshu.com/p/6f55b8412f03

HashShuffleManager運(yùn)行原理

Spark基礎(chǔ)面試題有哪些

2.1 未經(jīng)過優(yōu)化的HashShuffleManager

假設(shè)前提:每個Executor只有1個CPU core,也就是說,無論這個Executor上分配多少個task線程,同一時間都只能執(zhí)行一個task線程。

Spark基礎(chǔ)面試題有哪些

上游的stage的task對相同的key執(zhí)行hash算法,從而將相同的key都寫入到一個磁盤文件中,而每一個磁盤文件都只屬于下游stage的一個task。在將數(shù)據(jù)寫入磁盤之前,會先將數(shù)據(jù)寫入到內(nèi)存緩沖,當(dāng)內(nèi)存緩沖填滿之后,才會溢寫到磁盤文件中。但是這種策略的不足在于,下游有幾個task,上游的每一個task都就都需要創(chuàng)建幾個臨時文件,每個文件中只存儲key取hash之后相同的數(shù)據(jù),導(dǎo)致了當(dāng)下游的task任務(wù)過多的時候,上游會堆積大量的小文件 。

具體的過程分為“寫過程”和“讀過程”,參看上面的鏈接。

2.2 經(jīng)過優(yōu)化的HashShuffleManager

假設(shè)前提:每個Executor只有1個CPU core,也就是說,無論這個Executor上分配多少個task線程,同一時間都只能執(zhí)行一個task線程。

Spark基礎(chǔ)面試題有哪些

Shuffle Write過程:

  • 開啟consolidate機(jī)制之后,在shuffle write過程中,task就不是為下游stage的每個task創(chuàng)建一個磁盤文件了。此時會出現(xiàn)shuffleFileGroup的概念,每個shuffleFileGroup會對應(yīng)一批磁盤文件,磁盤文件的數(shù)量與下游stage的task數(shù)量是相同的。一個Executor上有多少個CPU core,就可以并行執(zhí)行多少個task。而第一批并行執(zhí)行的每個task都會創(chuàng)建一個shuffleFileGroup,并將數(shù)據(jù)寫入對應(yīng)的磁盤文件內(nèi)。

  • 當(dāng)Executor的CPU core執(zhí)行完一批task,接著執(zhí)行下一批task時,下一批task就會復(fù)用之前已有的shuffleFileGroup,包括其中的磁盤文件。也就是說,此時task會將數(shù)據(jù)寫入已有的磁盤文件中,而不會寫入新的磁盤文件中。因此,consolidate機(jī)制允許不同的task復(fù)用同一批磁盤文件,這樣就可以有效將多個task的磁盤文件進(jìn)行一定程度上的合并,從而大幅度減少磁盤文件的數(shù)量,進(jìn)而提升shuffle write的性能。

Shuffle Read過程:

  • 和未優(yōu)化之前的Shuffle Read過程相同。

SortShuffleManager運(yùn)行原理

    SortShuffleManager的運(yùn)行機(jī)制主要分成兩種,一種是普通運(yùn)行機(jī)制,另一種是bypass運(yùn)行機(jī)制。當(dāng)shuffle read task的數(shù)量小于等于spark.shuffle.sort.bypassMergeThreshold參數(shù)的值時(默認(rèn)為200),就會啟用bypass機(jī)制。

2.3 SortShuffleManager普通運(yùn)行機(jī)制

Spark基礎(chǔ)面試題有哪些

Shuffle Write過程:

  • 在該模式下,數(shù)據(jù)會先寫入一個內(nèi)存數(shù)據(jù)結(jié)構(gòu)中,此時根據(jù)不同的shuffle算子,可能選用不同的數(shù)據(jù)結(jié)構(gòu)。如果是reduceByKey這種聚合類的shuffle算子,那么會選用Map數(shù)據(jù)結(jié)構(gòu),一邊通過Map進(jìn)行聚合,一邊寫入內(nèi)存;如果是join這種普通的shuffle算子,那么會選用Array數(shù)據(jù)結(jié)構(gòu),直接寫入內(nèi)存。接著,每寫一條數(shù)據(jù)進(jìn)入內(nèi)存數(shù)據(jù)結(jié)構(gòu)之后,就會判斷一下,是否達(dá)到了某個臨界閾值。如果達(dá)到臨界閾值的話,那么就會嘗試將內(nèi)存數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)溢寫到磁盤,然后清空內(nèi)存數(shù)據(jù)結(jié)構(gòu)。

  • 在溢寫到磁盤文件之前,會先根據(jù)key對內(nèi)存數(shù)據(jù)結(jié)構(gòu)中已有的數(shù)據(jù)進(jìn)行排序。排序過后,會分批將數(shù)據(jù)寫入磁盤文件。默認(rèn)的batch數(shù)量是10000條,也就是說,排序好的數(shù)據(jù),會以每批1萬條數(shù)據(jù)的形式分批寫入磁盤文件。寫入磁盤文件是通過Java的BufferedOutputStream實(shí)現(xiàn)的。BufferedOutputStream是Java的緩沖輸出流,首先會將數(shù)據(jù)緩沖在內(nèi)存中,當(dāng)內(nèi)存緩沖滿溢之后再一次寫入磁盤文件中,這樣可以減少磁盤IO次數(shù),提升性能。

  • 一個task將所有數(shù)據(jù)寫入內(nèi)存數(shù)據(jù)結(jié)構(gòu)的過程中,會發(fā)生多次磁盤溢寫操作,也就會產(chǎn)生多個臨時文件。最后會將之前所有的臨時磁盤文件都進(jìn)行合并,這就是merge過程,此時會將之前所有臨時磁盤文件中的數(shù)據(jù)讀取出來,然后依次寫入最終的磁盤文件之中。此外,由于一個task就只對應(yīng)一個磁盤文件,也就意味著該task為下游stage的task準(zhǔn)備的數(shù)據(jù)都在這一個文件中,因此還會單獨(dú)寫一份索引文件,其中標(biāo)識了下游各個task的數(shù)據(jù)在文件中的start offset與end offset。

  • 產(chǎn)生中間文件數(shù)量:SortShuffleManager由于有一個磁盤文件merge的過程,因此大大減少了文件數(shù)量。比如第一個stage有50個task,總共有10個Executor,每個Executor執(zhí)行5個task,而第二個stage有100個task。由于每個task最終只有一個磁盤文件,因此此時每個Executor上只有5個磁盤文件,所有Executor只有50個磁盤文件。


2.4 SortShuffleManager的bypass機(jī)制
Spark基礎(chǔ)面試題有哪些
 

Shuffle Write過程:

  • 此時task會為每個下游task都創(chuàng)建一個臨時磁盤文件,并將數(shù)據(jù)按key進(jìn)行hash然后根據(jù)key的hash值,將key寫入對應(yīng)的磁盤文件之中。當(dāng)然,寫入磁盤文件時也是先寫入內(nèi)存緩沖,緩沖寫滿之后再溢寫到磁盤文件的。最后,同樣會將所有臨時磁盤文件都合并成一個磁盤文件,并創(chuàng)建一個單獨(dú)的索引文件。

  • 該過程的磁盤寫機(jī)制其實(shí)跟未經(jīng)優(yōu)化的HashShuffleManager是一模一樣的,因?yàn)槎家獎?chuàng)建數(shù)量驚人的磁盤文件,只是在最后會做一個磁盤文件的合并而已。因此少量的最終磁盤文件,也讓該機(jī)制相對未經(jīng)優(yōu)化的HashShuffleManager來說,shuffle read的性能會更好。

  • 而該機(jī)制與普通SortShuffleManager運(yùn)行機(jī)制的不同在于:第一,磁盤寫機(jī)制不同;第二,不會進(jìn)行排序。也就是說,啟用該機(jī)制的最大好處在于,shuffle write過程中,不需要進(jìn)行數(shù)據(jù)的排序操作,也就節(jié)省掉了這部分的性能開銷。

“Spark基礎(chǔ)面試題有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

網(wǎng)頁題目:Spark基礎(chǔ)面試題有哪些
分享地址:http://aaarwkj.com/article12/peepdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、移動網(wǎng)站建設(shè)、Google品牌網(wǎng)站設(shè)計(jì)、搜索引擎優(yōu)化動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
我要看国产一级内射片| 91内射视频在线播放| 青青草原网址在线观看| 日本精品人妻一区二区三区蜜桃| 欧美日韩在线不卡一区| 日韩久久这里只有精品视频| 欧美黄片网站在线观看| 久久精品国产亚洲av无| 国产丝袜在线精品丝袜不卡| 国产激情视频在线观看你懂的| 91久久精品91久久性色| 精品欧美日韩国产一区| 久久亚洲综合精品人妻| 日本中文字幕一区在线观看 | 亚洲日本一区二区高清在线 | 成人国产精品三上悠亚久久| 亚洲欧美精品专区极品| av一区二区三区网站| 亚洲黄色av在线免费观看| 国产白丝精品爽爽久久| 成年人免费久久毛片| 亚洲高清精品一区二区| 免费黄色福利网址大片| 国产精品一区二在线观看| 和富婆啪啪一区二区免费看| 午夜毛片免费在线播放| dy888午夜福利精品国产97| 国产成av人片乱码色午夜| 少妇精品久久久一区二区三区| 中文字幕有码在线朋友| 日本欧美精品一区二区三区| 91国产熟女自拍视频| 国产黄片一区二区在线| 日本av在线中文一区二区| 成年人黄色免费网站在线观看| 99热免费精品在线观看| 亚洲激情午夜福利视频| 国产亚洲综合一区二区三区| 九九在线视频免费观看精彩| 蜜臀视频一区二区在线播放| 免费一区二区三区精品|