我在运行mapreduce作业时遇到一些问题。映射器快速完成。然而,减速器停留在99.33%。我可以在日志中看到一些IO错误。但是,hadoop本身不应该处理IO错误。我跑两次和同样的事情。有什么建议吗?
答案 0 :(得分:0)
你的钥匙有多平衡?听起来像一个键有大量的记录,所以它们只能由一个reducer处理。
如果您的工作是一些可以轻松划分为子计算(如简单计数)的计算,请尝试通过盐键将您的工作分成两份工作。在键上添加一个随机数或字符串,以便在第一次传递时分配到多个reducer,然后在第二次传递时合并这些结果。
希望有意义!!!
答案 1 :(得分:0)
请提供更多输入
df
,以确认您没有磁盘空间问题。However, isn't hadoop itself supposed to handle the IO errors.
是的,就像任何好的代码一样,Hadoop处理IOException,但是在IO错误之后它可能会或者可能没有成功完成作业,这取决于你对我的问题1&的回答。 ,2。简单地说,如果你提供足够的冗余,那么hadoop可以是容错的。如果冗余较少,则hadoop作业将在IOException等严重问题上失败。