1. 程式人生 > >mapreduce出現類似死鎖情況

mapreduce出現類似死鎖情況

star killed pan ont ati apr map con bulk

1. mapreduce.job.reduce.slowstart.completedmaps:

在往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。



mapreduce出現類似死鎖情況