hadoop - 如何在 Hadoop 2.7.1 中获取作业计数器?

标签 hadoop ambari hadoop-2.7.2

我正在尝试使用 java 从特定作业中获取所有计数器... 我已经为 Hadoop 0.23.1 编写了工作代码:

    JobClient client = new JobClient(new JobConf(createConfiguration()));
    RunningJob job;
    system.out.print("Looking for job with title containing the string '" + jobName + "'");
    List<JobStatus> jobStatusList = Arrays.asList(client.getAllJobs());

    Collections.sort(jobStatusList, new Comparator<JobStatus>() {

        @Override
        public int compare(JobStatus o1, JobStatus o2) {
            return (o1.getStartTime() < o2.getStartTime()) ? 1 : (o1.getStartTime() > o2.getStartTime() ? -1 : 0);
        }
    });

    for (JobStatus jobStatus : jobStatusList) {
        job = client.getJob(jobStatus.getJobID());
        if (job.getJobName().contains(jobName)) {
            system.out.print(String.format("Job Name '%s' was found in job ID: %s...", jobName, jobStatus.getJobID().toString()));
            return job.getCounters();
        }
    }
    system.out.print("Did not find job that contains the string '" + jobName + "'. Counters are set to null.");

知道为什么它在 2.7.1 中不起作用吗?

最佳答案

成功使用 REST API:

http://<history server http address:port>/ws/v1/history/mapreduce/jobs/{jobid}/counters

关于hadoop - 如何在 Hadoop 2.7.1 中获取作业计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37462852/

相关文章:

perl - 为什么 Hadoop Streaming 找不到我的脚本?

hadoop - 使用Ambari逐步安装Plain hadoop集群

hadoop - 通过带有数据节点故障转移的 webhdfs 的 webrequest

Hadoop 2.7.2 - 错误 : Could not find or load main class org. apache.hadoop.hdfs.server.namenode.NameNode

eclipse - Ubuntu 12.04 - Eclispe 3.8- hadoop-1.2.1- 输入路径不存在

java - Hive:无法为 HDFS 中的现有数据创建外部表

hadoop - Hadoop输入拆分与 block

json - 为什么不是来自 ambari 集群的所有参数都不由蓝图 json 文件表示

java - 如何使用 Hive 从 hortonworks 中的 jdbc 程序创建表?