我是hadoop / yarn / mapreduce的新手。
我尝试使用MapReduce作业将文档索引到Cassandra的ElasticSearch中。我看到大约700个拆分,但我的所有文档都被第16个拆分索引(grepped the userlogs)。有没有办法以编程方式(Java)在没有更多文档需要索引时正常关闭剩余的任务?
答案 0 :(得分:0)
您可以使用map方法中的以下代码获取mapper的任务ID和输入拆分。
JobConf.get("mapred.task.id");
FileSplit fileSplit = (FileSplit)context.getInputSplit();
String filename = fileSplit.getPath().getName()
使用上面的文件名,您将获得输入分割的文件名,使用该文件名可以杀死您不需要执行的所有任务。
请在杀死一些地图任务后检查作业是否成功完成,我认为作业应该失败。我认为最好只输入mapreduce程序索引所需的文件,而不是杀死map任务。