Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在作业完成后以编程方式关闭剩余的mapreduce拆分_Java_Hadoop_Mapreduce - Fatal编程技术网

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

Java 如何在作业完成后以编程方式关闭剩余的mapreduce拆分,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我是hadoop/Thread/mapreduce的新手 我正在尝试使用MapReduce作业将文档索引到Cassandra的ElasticSearch中。我看到了大约700个拆分,但是我所有的文档都被用户日志中的第16个拆分所索引。一旦没有更多的文档可供索引,是否有任何方法可以通过编程方式优雅地关闭剩余的任务?您可以使用map方法中的以下代码获取映射器的任务id和输入拆分 JobConf.get("mapred.task.id"); FileSplit fileSplit = (FileSp

我是hadoop/Thread/mapreduce的新手


我正在尝试使用MapReduce作业将文档索引到Cassandra的ElasticSearch中。我看到了大约700个拆分,但是我所有的文档都被用户日志中的第16个拆分所索引。一旦没有更多的文档可供索引,是否有任何方法可以通过编程方式优雅地关闭剩余的任务?

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

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

FileSplit fileSplit = (FileSplit)context.getInputSplit();
String filename = fileSplit.getPath().getName()
使用上述文件名,您将获得输入拆分的文件名,使用该文件名,您可以终止所有不需要执行的任务


请检查在完成几个映射任务后作业是否成功完成,我认为作业应该失败。我认为最好只输入需要为mapreduce程序编制索引的文件,而不是停止map任务。

谢谢。让我试试。