1

Hadoop は初めてです。Reducer でカスタム カウンターを作成しようとしています。カスタム カウンターの使用例を見つけましたが、hadoop 1.x にありました。Hadoop 2.x のカウンターの適切な解決策が見つかりません。この問題について誰か助けてもらえますか? 前もって感謝します

4

1 に答える 1

0

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) メソッドを実装します。

于 2013-07-30T02:36:09.953 に答える