0

Pig ジョブの進行状況を監視したいと考えています。ほとんどの作業は、Jython で記述された UDF で行われます。Jython UDF 内から Hadoop カウンターを定義/インクリメントする方法はありますか?

前もって感謝します。

4

2 に答える 2

2

今は確認できませんが (テストされていないコードで申し訳ありません)、Pig 0.8 の Java UDF (非常によく似ています) では、次のようになります。

public class INC_COUNTER extends EvalFunc<DataBag> {

    @Override
    public DataBag exec(Tuple input) throws IOException {

        PigStatusReporter reporter = PigStatusReporter.getInstance();
        if (reporter != null) {
           reporter.getCounter(Counters.EXAMPLE).increment(1);//Counters.EXAMPLE is an enum value
        }
        return null;
    }
}

これが機能し、このコードを Jython UDF のソリューションに変換できることを願っています。

于 2013-02-27T15:45:52.610 に答える
0

を使用して、Hadoop構成にカウンターを追加できますsetInt("<counter>", <value>)。次に、UDFが呼び出しを実行するたびに、を使用して値をインクリメントしますsetInt("<counter>", getInt("<counter>") + 1)。私はHiveUDFで一度同じようなことをしたと思います。

Javaドキュメントで。

于 2013-02-07T10:54:55.217 に答える