【问题标题】:hadoop reducer progress 100% but doesn't endhadoop reducer 进度 100% 但没有结束
【发布时间】:2017-09-13 20:44:35
【问题描述】:

我正在运行一项包含 16 个 reduce 任务的 hadoop 作业。 (hadoop-1.2.1)

其中一些有 100% 的进展,但它们并没有结束。 他们只是停留在 100% 并且工作清理:待定。 他们的状态只显示'reduce > reduce'。

我猜这个问题的出现是因为作业写入了太多的多个输出。 (约50~100多路输出) 但这只是我的猜测。我不确切知道编写许多多个输出会导致此问题。 谁能详细告诉我是什么原因导致了这个问题? 我为此搜索了很多,但找不到明确的答案。

最好的问候。

【问题讨论】:

  • 你的猜测是合理的。磁盘 I/O 通常是 MapReduce 作业的瓶颈。
  • 如果我的猜测是正确的,那么在每个 reducer 的 part-r-000XX 文件中写入多个输出和多个值有什么区别?并且似乎总是卡在关闭多个输出文件而不向文件中写入值。感谢您的评论。

标签: java hadoop mapreduce


【解决方案1】:

您查看过任务日志吗?你应该能够知道任务在做什么。例如,您应该查看它是否正在合并文件。

另外,记下 reducer 正在处理的数据量。正在完成处理的 reducer 是否比未同时完成的 reducer 处理的数据少?如果是这样,那么这表明减速器偏斜(数据偏斜)他们比其他人做更多的工作。

【讨论】:

  • 我检查了任务的日志,发现其中一些打印了“java.io.IOException: JvmValidate Failed”错误。我认为我的代码存在一些问题。我再看看。感谢您的回答。
  • 我查看了更多日志。我上面提到的错误不在卡住阶段。进度达到 100% 后,我找不到任何错误。但它打印了“1.0% reduce > reduce”,15 分钟后,它打印了“Task attempt_201709141045_0002_r_000008_0 is in commit-pending”。有 15 分钟的空白。
猜你喜欢
  • 2013-02-20
  • 1970-01-01
  • 2015-01-07
  • 1970-01-01
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
  • 1970-01-01
相关资源
最近更新 更多