2014-02-24 121 views

回答

4

假設您的集羣中有100個可用的減少插槽。

加載因子爲0.95時,所有95個減少任務將同時啓動,因爲所有任務都有足夠的減少插槽可用。這意味着任何任務都不會在隊列中等待,直到剩下的其中一個完成。當減少任務是「小」時,我會推薦這個選項,即完成得相對較快,或者他們都需要相同的時間,或多或少。

另一方面,在負載因子爲1.75時,100個reduce任務將同時啓動,與可用的reduce slots一樣多,並且75個rest將在隊列中等待,直到reduce slot變爲可用。這提供了更好的負載均衡,因爲如果某些任務比其他任務「更重要」,即需要更多時間,那麼它們不會成爲工作的瓶頸,因爲其他任務減少了時隙,而不是完成任務並等待,現在將正在執行隊列中的任務。這也減輕了每個減少任務的負載,因爲地圖輸出的數據傳播到更多的任務。

如果我可以表達我的意見,我不確定這些因素是否總是理想的。通常,我使用大於1.75(有時甚至是4或5)的因子,因爲我正在處理大數據,並且我的數據不適合每臺機器,除非我將此因子設置得更高並且負載平衡也更好。