我在运行mapreduce作业时遇到了一些问题。Map程序很快完成。然而,减速器卡在99.33%。我可以在日志中看到一些io错误。然而,hadoop本身不应该处理io错误吗。我做了两次同样的工作。有什么建议吗?
ev7lccsx1#
请提供更多信息您有什么样的设置,是一个虚拟机的伪集群还是多个虚拟机的伪集群跑 df 在您的系统上,当您得到io异常时,确认您没有磁盘空间问题。你说的“它卡住了”是什么意思…减速器会超时,最后会失败。所以请详细说明你提到的。回答你的问题 However, isn't hadoop itself supposed to handle the IO errors. 是的,像任何好的代码一样,hadoop处理ioexception,但它可能在io错误后成功完成任务,也可能无法成功完成任务,这取决于您对我的问题1和2的回答。简单地说,如果提供足够的冗余,hadoop可以是容错的。如果冗余较少,hadoop作业将在ioexception等严重问题上失败。
df
However, isn't hadoop itself supposed to handle the IO errors.
o4tp2gmn2#
你的钥匙有多平衡?听起来好像一个键拥有大量的记录,所以它们只能由一个减速机处理。如果你的工作是一些计算,可以很容易地分为子计算(如简单的计数),尝试把你的工作分为两个工作盐你的关键。在键中添加一个随机数或字符串,以便在第一次传递时分配给多个还原器,然后在第二次传递时合并这些结果。希望有意义!!!
2条答案
按热度按时间ev7lccsx1#
请提供更多信息
您有什么样的设置,是一个虚拟机的伪集群还是多个虚拟机的伪集群
跑
df
在您的系统上,当您得到io异常时,确认您没有磁盘空间问题。你说的“它卡住了”是什么意思…减速器会超时,最后会失败。所以请详细说明你提到的。
回答你的问题
However, isn't hadoop itself supposed to handle the IO errors.
是的,像任何好的代码一样,hadoop处理ioexception,但它可能在io错误后成功完成任务,也可能无法成功完成任务,这取决于您对我的问题1和2的回答。简单地说,如果提供足够的冗余,hadoop可以是容错的。如果冗余较少,hadoop作业将在ioexception等严重问题上失败。o4tp2gmn2#
你的钥匙有多平衡?听起来好像一个键拥有大量的记录,所以它们只能由一个减速机处理。
如果你的工作是一些计算,可以很容易地分为子计算(如简单的计数),尝试把你的工作分为两个工作盐你的关键。在键中添加一个随机数或字符串,以便在第一次传递时分配给多个还原器,然后在第二次传递时合并这些结果。
希望有意义!!!