Closed
Description
For the Hadoop config value "mapreduce.task.timeout" (or "mapred.task.timeout" for Hadoop 1), a value of 0 is the equivalent of disabling that timeout. However, the ES-Hadoop HeartBeat compares "mapred.task.timeout" to its own delay and throws an error if the heartbeat is greater than the task timeout.
I'm seeing this with 2.1.0.Beta3
org.elasticsearch.hadoop.mr.HeartBeat
class HeartBeat {
...
HeartBeat(final Progressable progressable, Configuration cfg, TimeValue delay, final Log log) {
Assert.notNull(progressable, "a valid progressable is required to report status to Hadoop");
TimeValue tv = HadoopCfgUtils.getTaskTimeout(cfg);
Assert.isTrue(tv.getSeconds() > delay.getSeconds(), "Hadoop timeout is shorter than the heartbeat");
...
}
...
}
The assert should probably be or'ing w/ a "tv.getSeconds == 0" or something like that.