ローカルモードで完全に実行される豚UDFがありますが、次のように失敗します。クラスターで試行したときに、引数「null」で「com.bla.myFunc」をインスタンス化できませんでした。
質問する
1519 次
1 に答える
0
私の間違いは、タスクログを十分に掘り下げることではありませんでした。jobTracker UIを介してそこを掘り下げると、根本的な原因は次のとおりであることがわかります。
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Maps
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
だから、いつものほかに:
pigServer.registerFunction("myFunc", new FuncSpec("com.bla.myFunc"));
追加する必要があります:
registerJar(pigServer, Maps.class);
UDFが使用するjarの場合も同様です。
もう1つのオプションは、build-jar-with-dependenciesを使用することですが、クラスパスでpig.jarを自分の前に配置する必要があります。そうしないと、次の問題に取り組むことになります。埋め込みhadoop-pig:正しい使用方法は何ですか。 UDFの自動addContainingJar?
于 2012-06-17T14:16:29.253 に答える