mapreduce出現類似死鎖情況


在往hbase表里通過bulkload導數據時,某個mapreduce跑了一個多小時還沒跑,看yarn界面,發現map還有一小部分沒跑完,沒跑完的map全在pending,running中沒有,同時reduce在copy階段把資源全用光,導致map沒資源去跑,進而導致reduce一直在copy狀態等待。也就是說map需要資源去跑,reduce需要等map全部跑完才能進行下一個階段,這樣就導致相互等待,類似死鎖。大約在一個半小時左右,有130多個reduce被AppMaster kill,被kill的reduce出現日志:Reducer preempted to make room for pending map attempts Container killed by the ApplicationMaster. Container killed on request. Exit code is 143 Container exited with a non-zero exit code 143。這就是說當資源不夠是,AppMaster會kill掉reduce釋放資源給map。解決辦法是調整mapreduce.job.reduce.slowstart.completedmaps參數,默認為0.05,即map完成0.05后reduce就開始copy,如果集群資源不夠,有可能導致reduce把資源全搶光,可以把這個參數調整到0.8,map完成80%后才開始reduce copy。

 


免責聲明!

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



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