Pig ジョブの進行状況を監視したいと考えています。ほとんどの作業は、Jython で記述された UDF で行われます。Jython UDF 内から Hadoop カウンターを定義/インクリメントする方法はありますか?
前もって感謝します。
Pig ジョブの進行状況を監視したいと考えています。ほとんどの作業は、Jython で記述された UDF で行われます。Jython UDF 内から Hadoop カウンターを定義/インクリメントする方法はありますか?
前もって感謝します。
今は確認できませんが (テストされていないコードで申し訳ありません)、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 のソリューションに変換できることを願っています。
を使用して、Hadoop構成にカウンターを追加できますsetInt("<counter>", <value>)
。次に、UDFが呼び出しを実行するたびに、を使用して値をインクリメントしますsetInt("<counter>", getInt("<counter>") + 1)
。私はHiveUDFで一度同じようなことをしたと思います。
Javaドキュメントで。