public void setup(Context context) throws IOException, InterruptedException{
Configuration conf = context.getConfiguration();
org.apache.hadoop.mapreduce.Cluster cluster = new org.apache.hadoop.mapreduce.Cluster(conf);
Job currentJob = cluster.getJob(context.getJobID());
mapperCounter = currentJob.getCounters().findCounter(TEST).getValue();
}
我编写了以下代码来获取我在mapper函数中递增的计数器的值。问题是cluster.getJob返回的currentJob结果为null。有谁知道我怎么解决这个问题?
我的问题不同,因为我试图在减速器中访问我的计数器,而不是在完成所有地图减少任务之后。我在这里粘贴的代码属于我的reducer类。
答案 0 :(得分:0)
似乎cluster.getJob(context.getJobID());
在hadoop的独立操作中不起作用。
尝试在hadoop的单节点群集模式下使用YARN运行您的程序,如文档中所述:https://hadoop.apache.org/docs/r2.7.0/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation