3

レコードでカスタム処理を行うために使用する UDF があります。eval 関数では、処理にサードパーティの jar を使用しています。ジョブの jar ファイルを見ましたが、この依存関係は含まれていません。ジョブ jar に依存 jar を含める方法はありますか? (テストのために、クラスターをローカルモードで実行しています)。

または、分散キャッシュを使用して、依存する jar を UDF で使用できるようにすることはできますか?

依存するjarを豚に登録しようとしました。最初に登録された jar (すべての udfs がこの jar にバンドルされています) については、問題に直面していません。しかし、2 番目の jar では、UDF がそこからクラスにアクセスしようとすると、問題に直面しています。

REGISTER '/home/user/pig/udfrepository/projectUDF.jar'
REGISTER '/home/user/thridpartyjars/xyz.jar';

コンソールに表示されるログは次のとおりです。

2013-08-11 10:35:02,485 [Thread-14] WARN  org.apache.hadoop.mapred.LocalJobRunner - job_local_0001
java.lang.NoSuchMethodError: org.xyz.abc.convertToOtherFormat(Lorg/DateTimeZone;)Lorg/DateTime;
        at com.myproject.MyUDF.exec(MyUDF.java:70)

これに関するヘルプは大歓迎です。前もって感謝します。

4

1 に答える 1

1

私が見つけた同じ問題が解決され、ここに文書化されました:

http://hadooptips.wordpress.com/2013/08/13/nosuchmethoderror-while-using-joda-time-2-2-jar-in-pig/

于 2013-08-19T09:58:53.997 に答える