2011-11-02 46 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类。但他可以用计算器来计算;) –