java - Hadoop:为什么一个狂写的reduce任务会超时?

标签 java timeout hadoop

我有一个 Hadoop reduce 任务,它分批读取其输入记录并进行大量处理,并为每个输入批处理写入大量输出。我有 read Hadoop 认为写入输出是为了终止挂起任务的“进度”。然而,尽管不断写入大量输出,但我的任务仍会超时并被终止。那么:我如何才能知道 Hadoop 认为任务上次报告进度的时间?为什么我必须对每个 context.write() 调用 context.progress()?有没有写作不算进步的情况? (例如,我的 key 是 NullWritable。)我在 CentOS 5.7 上使用 Cloudera CDH3u1,如果这有什么不同的话。

最佳答案

不确定为什么任务会被终止,但您可以增加值 mapreduce.task.timeout ,默认为 600000 毫秒。这可能不是一个好的做法,因为由于超时值的增加,rouge 任务将运行更多时间。

关于java - Hadoop:为什么一个狂写的reduce任务会超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7651344/

相关文章:

java - 结合android和gwt?

webdriver - Java WebDriver 等待页面加载

python - 在 apache spark/Storm 中运行 python 脚本

java - 包含 RHadoop 和 hadoop-streaming.jar 的虚拟机

java - Python/函数式小白,将不可读的Java递归转换为Python

java - AndEngine - 删除特定的 Sprite 及其主体

javascript - 如何让这个脚本在1秒后激活?

postgresql - 为什么 SQL drop 语句会超时

hadoop - 将实时数据从HDFS流传输到Hive

java - 什么是NullPointerException,我该如何解决?