cluster.getJob在hadoop中返回null

时间:2015-12-14 19:25:38

标签: hadoop

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类。

1 个答案:

答案 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