加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

获取Java中MapReduce的输入和输出数量

发布时间:2020-12-15 02:16:04 所属栏目:Java 来源:网络整理
导读:我想获得地图阶段的输入和输出数量以及使用 Java完成map / reduce作业的reduce阶段和时间.这些统计信息写在终端上,但是我需要用Java代码来编写它并在我自己的界面上编写它,就在这行之后: job_blocking.waitForCompletion(true); 解决方法 在此行之后,您可以
我想获得地图阶段的输入和输出数量以及使用 Java完成map / reduce作业的reduce阶段和时间.这些统计信息写在终端上,但是我需要用Java代码来编写它并在我自己的界面上编写它,就在这行之后:

job_blocking.waitForCompletion(true);

解决方法

在此行之后,您可以通过获取这些计数器的值来获取MAP_INPUT_RECORDS和REDUCE_OUTPUT_RECORDS(也是MAP_OUTPUT_RECORDS)的数量:

long map_input_records = job.getCounters()
    .findCounter("org.apache.hadoop.mapreduce.Task$Counter","MAP_INPUT_RECORDS")
    .getValue();
long map_output_records = job.getCounters()
    .findCounter("org.apache.hadoop.mapreduce.Task$Counter","MAP_OUTPUT_RECORDS")
    .getValue();
long reduce_input_records = job.getCounters()
    .findCounter("org.apache.hadoop.mapreduce.Task$Counter","REDUCE_INPUT_RECORDS")
    .getValue();
long reduce_output_records = job.getCounters()
    .findCounter("org.apache.hadoop.mapreduce.Task$Counter","REDUCE_OUTPUT_RECORDS")
    .getValue();

对于运行作业所需的时间,我不知道是否存在另一种方式(更容易),而不是设置一个长变量与当前时间执行之前和之后并获得它们的差异.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读