Hadoop 少量map/reduce任務執行慢問題


最近在做報表統計,跑hadoop任務。

之前也跑過map/reduce但是數據量不大,遇到某些map/reduce執行時間特別長的問題。

執行時間長有幾種可能性:

1. 單個map/reduce任務處理的任務大。

    需要注意每個任務的數據處理量大小不至於偏差太大。可以切割部分大文件。

2. map數量過多, reduce拉取各方數據慢

    這種情況,可以在中間加一輪map過程A。

    即map -> mapA - > reduce,來減少reduce拉取數據的源頭的個數

3. 遇到了執行慢節點

    hadoop 可以執行推測執行。對於某些耗時長的任務,如果集群有多余的slot可以啟動額外的任務執行。

    如果對於同一個map(或者reduce),有任何一個相同map執行完成。則其他任務會被kill, 該map(或者reduce)執行完成。

    這種情況完全避免了,慢節點問題。

  推測執行參數: mapred.map.tasks.speculative.execution 和 mapred.reduce.tasks.speculative.execution 默認開啟。

   

map/reduce官方默認參數: https://hadoop.apache.org/docs/r1.0.4/mapred-default.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM