一開始很抱歉問這個,我還是hadoop新手,我有個問題怕以后會因為我的配置不好,hadoop是強大的工具但是我認為如果我不能使用它是沒用的適當地
hadoop中的mapreduce是否有可能僅因為資源不能分配給reducer而被分配給mapper?
例如,如果我有很多輸入,假設我的機器紗線限制記憶體為 10gb,mapper 最大記憶體為 1gb,reducer 最大記憶體為 4gb。假設 vcpu 沒有問題,我有很多作業/拆分
然后有可能我所有的 10gb 都被 10 個映射器使用了,reducer 無法進入,因為當一個映射器完成時,它沒有足夠的資源來容納減速器容器,并且會讓另一個映射器在那里運行。最后集群只有行程映射器,所有作業都會卡住,因為沒有減速器可以運行。(其實還是沒有發生在我身上,可能是因為我的輸入有限)
任何人都可以提供一些推薦的設定或提示來避免這種情況嗎?
謝謝,如果我對hadoop如何調度容器有錯誤的概念,我很抱歉
uj5u.com熱心網友回復:
是的,除非啟用了搶占并且您設定了 YARN 佇列容量,否則資源可能會陷入等待狀態。
只有兩個內置調度程式。閱讀檔案以了解哪些適合您的需求。
- https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html
- https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/FairScheduler.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/424053.html
