• <nav id="dstbx"></nav>

    <nav id="dstbx"></nav>
    1. <form id="dstbx"></form>
    2. <small id="dstbx"></small>

      教育行業A股IPO第一股(股票代碼 003032)

      全國咨詢/投訴熱線:400-618-4000

      ReduceTask的工作機制【傳智大數據文章】

      更新時間:2021年01月26日17時16分 來源:傳智教育 瀏覽次數:

      Reduce大致分為copy、sort、reduce三個階段,重點在前兩個階段。

      copy階段包含一個eventFetcher來獲取已完成的map列表,由Fetcher線程去copy數據,在此過程中會啟動兩個merge線程,分別為 inMemoryMerger和onDiskMerger,分別將內存中的數據merge到磁盤和將磁盤中的數據進行merge。待數據copy完成之后,copy階段就完成了,開始進行sort階段。

      sort階段主要是執行finalMerge操作,純粹的 sort階段,完成之后就是reduce階段,調用用戶定義的reduce函數進行處理。

      ReduceTask的工作機制

      具體步驟如下:

      • Copy階段,簡單地拉取數據。Reduce進程啟動一些數據copy線程(Fetcher),通過HTTP方式請求maptask 獲取屬于自己的文件。、

      • Merge階段。這里的merge如map端的merge動作,只是數組中存放的是不同map端copy來的數值。Copy過來的數據會先放入內存緩沖區中,這里的緩沖區大小要比map端的更為靈活。merge有三種形式:內存到內存;內存到磁盤;磁盤到磁盤。默認情況下第一種形式不啟用。當內存中的數據量到達一定閾值,就啟動內存到磁盤的merge。與map 端類似,這也是溢寫的過程,這個過程中如果你設置有Combiner,也是會啟用的,然后在磁盤中生成了眾多的溢寫文件。第二種merge方式一直在運行,直到沒有map端的數據時才結束,然后啟動第三種磁盤到磁盤的merge方式生成最終的文件。

      • 把分散的數據合并成一個大的數據后,還會再對合并后的數據排序。

      • 對排序后的鍵值對調用reduce方法,鍵相等的鍵值對調用一次reduce方法,每次調用會產生零個或者多個鍵值對, 后把這些輸出的鍵值對寫入到HDFS文件中。


        猜你喜歡:

        MapReduce編程的兩種數據流模型演示?

        簡單舉例,MapReduce是如何進行計算的

        如何操作MapReduce的性能調優?

        傳智教育大數據工程師培訓課程

      0 分享到:
      神马影院我不卡