爲何map分片大小要與塊大小相同?

全部的省時間優化,主要是講Hadoop採用的數據本地優化,避免浪費寶貴的網絡帶寬,可是有時候對於一個Map任務輸入來講,儲存有某個HDFS數據塊備份的三個節點可能正在運行其餘map任務,此時做業調度,也就是所謂的JobTracker需在三個備份中的某個數據尋求同個機架中的空閒機器來運行該map任務。網絡

因此咱們應該清楚了爲何最佳分片大小應該與塊大小相同:由於這種機制能夠確保能夠儲存在單個節點上的最大輸入塊的大小。換句話說加劇的字體是咱們的目標。若是分片跨越兩個數據塊,那麼對於任何一個HDFS節點,基本上都不可能同時儲存這兩個數據塊,所以分片中的部分數據須要經過網絡傳輸到map任務節點,與使用本地數據運行整個map任務相比,這種方法顯然效率更低。oop

此外,應該注意map任務應該將結果存入本地硬盤,而不是HDFS系統。由於它產生的只是中間結果。字體

相關文章
相關標籤/搜索