【问题标题】:hadoop-streaming : How reduce task calculates reduce input size? and how to fix it?hadoop-streaming:减少任务如何计算减少输入大小?以及如何解决?
【发布时间】:2011-11-02 17:08:14
【问题描述】:

我在 jobtracker 日志中看到以下内容:

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 是如何计算出 reducer 输入以采用 176511226508 的。
  • 我有两个小型工作节点,每个节点有 70 个 gig,还有一个 reducer,我该如何解决这个问题? by increasing the number of reducers?

【问题讨论】:

标签: python hadoop mapreduce hadoop-streaming


【解决方案1】:

检查ResourceEstimator#getEstimatedReduceInputSize()。与往常一样,getEstimatedReduceInputSize 函数周围的 cmets 是稀疏的。必须付出一些努力才能理解它。

【讨论】:

  • 好一个,但我不知道这是否适用于python流api。
  • @Thomas - 你所说的可用是什么意思? AFAIK,Hadoop 在启动流式任务之前调用此函数。
  • 他不能从 python 调用它。它是一个java类。但他可以用计算器计算它;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-26
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
  • 2017-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多