真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SparkShuffle內(nèi)幕解密(24)

  一、到底什么是Shuffle?

創(chuàng)新互聯(lián)是專業(yè)的博望網(wǎng)站建設(shè)公司,博望接單;提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行博望網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

     Shuffle中文翻譯為“洗牌”,需要Shuffle的關(guān)鍵性原因是某種具有共同特征的數(shù)據(jù)需要最終匯聚到一個(gè)     計(jì)算節(jié)點(diǎn)上進(jìn)行計(jì)算。

   二、Shuffle可能面臨的問(wèn)題?

1, 數(shù)據(jù)量非常大;

2, 數(shù)據(jù)如何分類,即如何Partition,Hash、Sort、鎢絲計(jì)算;

3, 負(fù)載均衡(數(shù)據(jù)傾斜);

4, 網(wǎng)絡(luò)傳輸效率,需要在壓縮和解壓縮之間做出權(quán)衡,序列化和反序列也是要考慮的問(wèn)題;

說(shuō)明:具體的Task進(jìn)行計(jì)算的時(shí)候盡一切最大可能使得數(shù)據(jù)具備Process Locality的特性;退而求次是增加數(shù)據(jù)分片,減少每個(gè)Task處理的數(shù)據(jù)量。


三、Hash Shuffle

1, key不能是Array;

2, Hash Shuffle不需要排序,此時(shí)從理論上講就節(jié)省了Hadoop MapReduce中進(jìn)行Shuffle需要排序時(shí)候的時(shí)間浪費(fèi),因?yàn)閷?shí)際生產(chǎn)環(huán)境有大量的不需要排序的Shuffle類型;

思考:不需要排序的Hash Shuffle是否一定比需要排序的Sorted Shuffle速度更快?不一定!如果數(shù)據(jù)規(guī)模比的情形下,Hash Shuffle會(huì)比Sorted Shuffle速度快(很多)!但是如果數(shù)據(jù)量大,此時(shí)Sorted Shuffle一般都會(huì)比Hash Shuffle快(很多)

    3,每個(gè)ShuffleMapTask會(huì)根據(jù)key的哈希值計(jì)算出當(dāng)前的key需要寫入的Partition,然后把決定后的結(jié)果寫入單 獨(dú)的文件,此時(shí)會(huì)導(dǎo)致每個(gè)Task產(chǎn)生R(指下一個(gè)Stage的并行度)個(gè)文件,如果當(dāng)前的Stage中有M個(gè)ShuffleMapTask,則會(huì)M*R個(gè)文件?。?!

     注意:Shuffle操作絕大多數(shù)情況下都要通過(guò)網(wǎng)絡(luò),如果Mapper和Reducer在同一臺(tái)機(jī)器上,此時(shí)只需要讀取本地 磁盤即可。

     Hash Shuffle的兩大死穴:第一:Shuffle前會(huì)產(chǎn)生海量的小文件于磁盤之上,此時(shí)會(huì)產(chǎn)生大量耗時(shí)低效的IO操 作;第二:內(nèi)存不共用?。?!由于內(nèi)存中需要保存海量的文件操作句柄和臨時(shí)緩存信息,如果數(shù)據(jù)處理規(guī)模比較龐大的話,內(nèi)存不可承受,出現(xiàn)OOM等問(wèn)題!


   四、Sorted Shuffle:

 為了改善上述的問(wèn)題(同時(shí)打開(kāi)過(guò)多文件導(dǎo)致Writer Handler內(nèi)存使用過(guò)大以及產(chǎn)生過(guò)度文件導(dǎo)致大量的隨機(jī)讀寫 帶來(lái)的效率極為低下的磁盤IO操作),Spark后來(lái)推出了Consalidate機(jī)制,來(lái)把小文件合并,此時(shí)Shuffle時(shí)文件產(chǎn)生的數(shù)量為cores*R,對(duì)于ShuffleMapTask的數(shù)量明顯多于同時(shí)可用的并行Cores的數(shù)量的情況下,Shuffle產(chǎn)生的文件會(huì)大幅度減少,會(huì)極大降低OOM的可能;

   為此Spark推出了Shuffle Pluggable開(kāi)放框架,方便系統(tǒng)升級(jí)的時(shí)候定制Shuffle功能模塊,也方便第三方系統(tǒng)改造人 員根據(jù)實(shí)際的業(yè)務(wù)場(chǎng)景來(lái)開(kāi)放具體最佳的Shuffle模塊;核心接口ShuffleManager,具體默認(rèn)實(shí)現(xiàn)               有HashShuffleManager、SortShuffleManager等,Spark 1.6.1中具體的配置如下:

Spark Shuffle內(nèi)幕解密(24)



      


本文題目:SparkShuffle內(nèi)幕解密(24)
新聞來(lái)源:http://weahome.cn/article/ishpdc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部