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



我是hadoop/yarn/mapreduce的新手。

我正在尝试使用MapReduce作业从Cassandra将文档索引到ElasticSearch中。我看到大约 700 个拆分,但我的所有文档都按第 16 个拆分索引(收集用户日志)。有没有办法以编程方式(Java)在没有更多文档要索引的情况下优雅地关闭剩余的任务?

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

JobConf.get("mapred.task.id");
FileSplit fileSplit = (FileSplit)context.getInputSplit();
String filename = fileSplit.getPath().getName()

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

请在杀死几个地图任务后检查作业是否成功完成,我相信作业应该失败。与其杀死map任务,我认为最好只输入你需要为mapreduce程序索引的文件。

最新更新