2011-11-02 50 views
0

我看到JobTracker的日誌中:hadoop-streaming:如何減少任務計算減少輸入大小?以及如何解決它?

011-11-02 10:04:09,595 WARN org.apache.hadoop.mapred.JobInProgress: No room for reduce task. Node tracker_worker1:localhost/127.0.0.1:52295 has 62087933952 bytes free; but we expect reduce input to take 176511226508  
  • 我想知道的Hadoop如何計算,減速器輸入採取。
  • 我有兩個小工作者節點,每個70個演出,一個減速器,我該如何解決這個問題? by increasing the number of reducers?
+0

複製到http://stackoverflow.com/questions/7982517/hadoop-streaming-resolving-space-issues和http://stackoverflow.com/questions/7962730/hadoop-streaming-reduce-task-in-pending -state-said-no-room-for-reduce-task –

回答

1

檢查ResourceEstimator#getEstimatedReduceInputSize()。與往常一樣,getEstimatedReduceInputSize函數的註釋很稀疏。必須付出一些努力才能理解它。

+0

不錯,但我不知道這是否適用於python streaming api。 –

+0

@Thomas - 你的意思是什麼? AFAIK,Hadoop在啓動流式傳輸任務之前調用此函數。 –

+0

他不能從python調用它。這是一個java類。但他可以用計算器來計算;) –