3

Pigは、()を介して登録されたすべてのjarをpigserver.registerjar1つのjob.jarに結合します。これにより、実際にが削除されMETA-INF/MANIFEST.MFます。

事前定義されたプロパティを含むjarを検索するUDFがありMANIFEST.MFます(jarの1つにこれが含まれています)。Pigがこれを削除するMANIFEST.MFと、UDFは機能しなくなります。

registerjarの代わりにjarをクラスパスに追加する方法はありますか?またはこれを克服する方法はありますか?

コードスニペットは次のとおりです。

cluster = new Cluster(new PigContext(ExecType.MAPREDUCE,properties));
PigServer pigServer = new PigServer(ExecType.MAPREDUCE,properties);
pigServer.registerJar("xyz.jar");
PigTest pigTest =  new PigTest(pigFile, args, pigServer, cluster);
pigTest.assertOutput("xxyyzz", jsonString);
4

2 に答える 2

0

Pig スクリプトを送信している親プログラム内からクラスパスを設定することもできます。または、親プログラムを実行する直前にクラスパスを設定する Unix スクリプトを使用する方が簡単です CLASSPATH=$CLASSPATH:your_jars java parent_program 。変数は、現在のプログラムの実行のためだけに変更されます

于 2013-07-16T11:06:29.580 に答える