Java 我可以通过hadoop中的代码提前完成映射任务吗?
有些情况下,我不需要遍历映射任务中的每个输入记录。例如,在每个映射器中,我最多只能从满足特定条件的200条记录中发出,然后它就可以退出Java 我可以通过hadoop中的代码提前完成映射任务吗?,java,hadoop,mapreduce,hadoop2,Java,Hadoop,Mapreduce,Hadoop2,有些情况下,我不需要遍历映射任务中的每个输入记录。例如,在每个映射器中,我最多只能从满足特定条件的200条记录中发出,然后它就可以退出 我可以在hadoop中这样做吗?尚未在api文档中找到相关方法。您可能可以通过覆盖中的run方法来实现这一点 run方法当前看起来像: public void run(Context context) throws IOException, InterruptedException { setup(context); try {
我可以在hadoop中这样做吗?尚未在api文档中找到相关方法。您可能可以通过覆盖中的
run
方法来实现这一点
run方法当前看起来像:
public void run(Context context) throws IOException, InterruptedException {
setup(context);
try {
while (context.nextKeyValue()) {
map(context.getCurrentKey(), context.getCurrentValue(), context);
}
} finally {
cleanup(context);
}
}
这就是调用标准
map()
方法的方式。您可以在其中添加一个计数器,一旦达到200,就可以中断while循环。这正是我需要的。