hadoop - 如何中止映射器(或 reducer )内的 MR 作业

标签 hadoop mapreduce

我试图在 map 方法中抛出 IOExceptions,但 MR 作业没有停止。在抛出大量 IOException 后,作业将停止。 有没有办法通过抛出异常或一些简单的调用来停止整个工作? 谢谢。

最佳答案

这不是 Hadoop 的理想用例,也不是好的做法,但您可以直接从代码内部扼杀您的工作。 因此,每当您达到希望工作停止的状态时,记录需要的内容并终止您的工作。

这可以使用旧的 mapred API 或使用 Job.killJob() 来完成 RunningJob.killjob()。您应该分别在 configure()setup() 中获取对 RunningJobJob 对象的引用。然后在需要时调用 kill 作业,新 API 的伪代码如下所示:

Class Map extends mapper<K1,V1,K2,V2>{
Job myJob;
@Override
setup(){
// Get the JObID
// Get the Job object
}

map(){
...
if(condition-to-stop){
myJob.killJob();
...
}
}
}

关于hadoop - 如何中止映射器(或 reducer )内的 MR 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18998470/

相关文章:

ubuntu - yum install <package> 不工作

macos - 在家搭建 Hadoop 集群(2PC)

hadoop - apache pig 下的所有平均组合?

sql - 如何在 Hive 中使用 between 实现连接?

hadoop - 如何选择Hadoop工具以获得更快的性能

java - hadoop中的NoCLassDefFounderror

hadoop - 为什么 Mapper 接口(interface)在新 API 中改为 Class?

hadoop - 在配置单元外部表中添加分区期间失败

python - hadoop,python,子进程失败,代码为 127

hadoop - MapReduce作业完成100%完成然后失败的原因有哪些?