【问题标题】:Get yarn applicationId from a submitted mapreduce job从提交的 mapreduce 作业中获取 yarn applicationId
【发布时间】:2017-01-13 03:15:31
【问题描述】:

我需要能够从 mapreduce 作业中获取 yarn applicationId。我找不到任何 API 可以做到这一点。我的 mapreduce 工作示例:

Configuration conf = new Configuration();
Job job = Job.getInstance(conf, "word count");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
job.submit();
job.waitForCompletion(true);

是否有类似job.getJobId 的API 来检索yarn applicationId?我知道yarn application -list 命令,但我需要能够通过某种API 知道我的程序中的applicationId。看起来 jobId 与我可以解析的前缀('job' vs 'application')的 applicationId execpt 相同,但我希望 API 中有一些我可以使用的东西。

【问题讨论】:

    标签: mapreduce hadoop-yarn hadoop2


    【解决方案1】:

    我最终解析了 jobId,删除了“job”前缀并添加了“application”前缀,因为它似乎没有为 mapreduce 作业公开 applicationId,它与具有不同前缀的 jobId 基本相同。这是一种 hacky 方法,但目前有效。

    【讨论】:

      【解决方案2】:

      你也可以试试这个:

      job.getJobID().appendTo(new StringBuilder("application"))
      

      如果您看到 JobID 类,它们将“JOB”作为参数传递,在这种情况下可以由应用程序替换。

      这将给出应用程序 ID。

      【讨论】:

        猜你喜欢
        • 2014-12-04
        • 2015-09-25
        • 1970-01-01
        • 1970-01-01
        • 2015-03-18
        • 2023-04-05
        • 2014-07-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多