如何在作业完成后以编程方式关闭剩余的mapreduce拆分

时间:2015-04-10 22:35:43

标签: java hadoop mapreduce

我是hadoop / yarn / mapreduce的新手。

我尝试使用MapReduce作业将文档索引到Cassandra的ElasticSearch中。我看到大约700个拆分,但我的所有文档都被第16个拆分索引(grepped the userlogs)。有没有办法以编程方式(Java)在没有更多文档需要索引时正常关闭剩余的任务?

1 个答案:

答案 0 :(得分:0)

您可以使用map方法中的以下代码获取mapper的任务ID和输入拆分。

JobConf.get("mapred.task.id");

FileSplit fileSplit = (FileSplit)context.getInputSplit();
String filename = fileSplit.getPath().getName()

使用上面的文件名,您将获得输入分割的文件名,使用该文件名可以杀死您不需要执行的所有任务。

请在杀死一些地图任务后检查作业是否成功完成,我认为作业应该失败。我认为最好只输入mapreduce程序索引所需的文件,而不是杀死map任务。