减速机未完成并卡在99%

时间:2013-12-18 21:51:23

标签: hadoop hadoop-streaming

我在运行mapreduce作业时遇到一些问题。映射器快速完成。然而,减速器停留在99.33%。我可以在日志中看到一些IO错误。但是,hadoop本身不应该处理IO错误。我跑两次和同样的事情。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

你的钥匙有多平衡?听起来像一个键有大量的记录,所以它们只能由一个reducer处理。

如果您的工作是一些可以轻松划分为子计算(如简单计数)的计算,请尝试通过盐键将您的工作分成两份工作。在键上添加一个随机数或字符串,以便在第一次传递时分配到多个reducer,然后在第二次传递时合并这些结果。

希望有意义!!!

答案 1 :(得分:0)

请提供更多输入

  1. 您拥有什么样的设置,包括具有一个VM或多个VM的伪群集
  2. 在获得IO异常时在系统上运行df,以确认您没有磁盘空间问题。
  3. 你的意思是“它被卡住了”......减速器会超时并在最后失败。所以请详细说明你提到的内容。
  4. 回答你的问题However, isn't hadoop itself supposed to handle the IO errors. 是的,就像任何好的代码一样,Hadoop处理IOException,但是在IO错误之后它可能会或者可能没有成功完成作业,这取决于你对我的问题1&的回答。 ,2。简单地说,如果你提供足够的冗余,那么hadoop可以是容错的。如果冗余较少,则hadoop作业将在IOException等严重问题上失败。