2011-12-23 11 views
2

MultipleOutputFormatのためにバージョン0.20.2、
を使用しており、ジョブの終了後にカウンタを抽出したいと考えています。

Hadoopでカウンタを取得するには

私はいくつかの有用で実用的な例を試しましたが、できませんでした。
誰かが簡単な例で表示できますか?

答えて

7

あなたは、このようなあなたの仕事を提出している場合:

Configuration conf = new Configuration(); 
    Job job = new Job(conf); 

    job.waitForCompletion(true); 

そして、それはあなたが場合でも、その実行これを呼び出すことができます(終了しましたが、仕事はしていないので、結果は、その後、最終的なものではないだろう。まだ完了して)、あなたが使用してカウンターをつかむことができます。

EXPLOR:

long counter = job.getCounters().findCounter(ExplorationReducer.UpdateCounter.UPDATED) 
    .getValue(); 

これは私が私の仕事で使用される列挙カウンタの名前です。

をationReducer.UpdateCounter.UPDATEDあなたはすべてのカウンタをしたい場合は、Countersオブジェクトの後ろに裏打ち構造を通過しなければなりません。そのためのイテレータがあります。

+0

ありがとうございました!あなたのサンプルコードは新しいAPIのようです。私は、Jobクラスがorg.apache.hadoop.mapreduceに含まれていることを発見しました。あなたは古いAPIについても私に見せてもらえますか? – superscalar

+0

ソースコードを新しいAPIに変更できますが、新しいAPIがMultipleOutputFormatもサポートしているかどうかはわかりません。 – superscalar

+0

ああ、問題があります。フォーマットは機能しませんが、より新しいバージョンのhadoopリリース21.0、22.0、または23.0からフォーマットを選ぶことができます。互換性があります。 –

関連する問題