Hadoop 链式MapReduce作业中的计数器
我正在使用链式作业。说:Hadoop 链式MapReduce作业中的计数器,hadoop,mapreduce,iteration,chaining,Hadoop,Mapreduce,Iteration,Chaining,我正在使用链式作业。说: Job 1 -> Job 2 -> Job 3 -> Job 4 -> Job 5 我创建了几个计数器,比如 public static enum MoreEnum { counterA, counterB; } 我正在Job 2中使用counterA,并在Mapper和Driver中获得正确的输出。 甚至在作业5开始之前我就能够正确获取计数器A的值。 我在驱动程序中使用此选项: 价值观= job2.g
Job 1 -> Job 2 -> Job 3 -> Job 4 -> Job 5
我创建了几个计数器,比如
public static enum MoreEnum {
counterA,
counterB;
}
我正在Job 2中使用counterA
,并在Mapper和Driver中获得正确的输出。
甚至在作业5开始之前
我就能够正确获取计数器A的值
。
我在驱动程序中使用此选项:
价值观=
job2.getCounters().findCounter(MoreEnum.counterA.getValue()
然而,在作业5的映射程序中,当我这样做时:
Long value=context.getCounter(morenum.counterA).getValue()
我得到的值是0
。为什么会这样,以及如何解决这个问题。好吧,在作业5的上下文中不存在计数器。在您的驱动程序中,您应该可以从作业2获取计数,并将其设置为作业5中的配置变量。这就是我作为临时解决方法所做的。那么,在映射器/还原器中使用计数器时,计数器会添加到作业中吗?