請描述一下Hadoop的shuffle過程

2021-09-25 15:13:13 字數 699 閱讀 4420

hadoop的shuffle過程分為map端和reduce端。

map端:map端會處理輸入資料並產生中間結果,這個中間結果會寫到本地磁碟,而不是hdfs。每個map的輸出會先寫到記憶體緩衝區中,當寫入的資料達到設定的閾值時,系統將會啟動乙個執行緒將緩衝區的資料寫到磁碟,這個過程叫做spill。

在spill寫入之前,會先進行二次排序,首先根據資料所屬的partition進行排序,然後每個partition中的資料再按key來排序。partition的目是將記錄劃分到不同的reducer上去,以期望能夠達到負載均衡,以後的reducer就會根據partition來讀取自己對應的資料。接著執行combiner(如果設定了的話),combiner的本質也是乙個reducer,其目的是對將要寫入到磁碟上的檔案先進行一次處理,這樣,寫入到磁碟的資料量就會減少。最後將資料寫到本地磁碟產生spill檔案(spill檔案儲存在指定的目錄中,map任務結束後就會被刪除)。

最後,每個map任務可能產生多個spill檔案,在每個map任務完成前,會通過多路歸併演算法將這些spill檔案歸併成乙個檔案。至此,map的shuffle過程就結束了。

reduce端:reducetask 根據自己的分割槽號,去各個 maptask 機器上取相應的結果分割槽檔案,reducetask 會取到同乙個分割槽的來自不同 maptask 的結果檔案,reducetask 會將這些檔案再進行合併(歸併排序)。至此,reduce的shuffle過程就結束了。

請詳細描述一下執行緒從建立到死亡的幾種狀態都有哪些?

1.新建 new 新建立了乙個執行緒物件。2.可執行 runnable 執行緒物件建立後,其他執行緒 比如 main 執行緒 呼叫了該物件 的 start 方法。該狀態的執行緒位於可執行執行緒池中,等待被執行緒排程選中,獲 取 cpu 的使用權 3.執行 running 可執行狀態 runnable...

描述一下Spring Bean的生命週期

描述一下spring bean的生命週期?1 解析類得到bean definition 2 如果有多個構造方法,則要推斷構造方法 3 確定好構造方法後,進行例項化得到乙個對像 4 對物件中的加了 autowired註解的屬性進行屬性填充 5 aware方法,比如beannameaware,beanf...

簡單介紹一下 用例描述

主要內容有 1.用例概述 1.1 執行者 2.事件流 2.1 主要事件流 介紹完成某一次操作的流程,在介面中是通過哪些控制項一步一步來完成的,僅考慮一次正常順利的操作,無視異常 2.2 次要事件流 一些操作所引發或導致的錯誤或者異常,介紹其的產生原因和處理結果 3.特殊要求 4.前置條件 本用例開始...