hadoop - 如何在 Hadoop 2.0.3 alpha 中创建自定义计数器

标签 hadoop hdfs

我是 Hadoop 的新手。我正在尝试在我的 reducer 中编写一个自定义计数器。我找到了一个使用自定义计数器的示例,但它是在 hadoop 1.x 中。我没有为 hadoop 2.x 中的计数器找到任何合适的解决方案 谁能帮我解决这个问题..? 提前致谢

最佳答案

通过查看 2.x 的代码,我相信它的工作方式与早期版本的示例相同

计数器由 org.apache.hadoop.mapreduce.counters.AbstractCounters 维护

当请求一个不在缓存中的计数器时,findCounter 会即时生成一个新的计数器

  public synchronized C findCounter(Enum<?> key) {
    C counter = cache.get(key);
    if (counter == null) {
      counter = findCounter(key.getDeclaringClass().getName(), key.name());
      cache.put(key, counter);
    }
    return counter;
  }

(它使用枚举类名作为此枚举定义的计数器的组名)

传递给 map 和 reduce 方法的 org.apache.hadoop.mapreduce.Context 对象实现了 getCounter(Enum) 方法

关于hadoop - 如何在 Hadoop 2.0.3 alpha 中创建自定义计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17926804/

相关文章:

hadoop - 在 MapReduce 作业中增加 ZooKeeper 协商超时

python - 在 hadoop 中加载大的日本文件

hadoop - HDFS孤立文件可以在datanode中吗?

java - 从 Windows 使用 Java 和 Kerberos key 表访问 Cloudera 上的 HDFS

java - 无法在centos R中安装rJava

oracle - 如果我们在sqoop中使用6个mapper从oracle中导入数据,那么sqoop和source之间会建立多少个connection

eclipse - 堆内存不足异常

amazon-web-services - 亚马逊 S3 错误代码 : 400 while running mr-job on EMR

hadoop - Dataproc 上的 "processing node"是什么?

elasticsearch - 可以在 Elasticsearch 中存储图像吗?