2

Hadoop 0.20.0 から少し変更された Hadoop に pig を接続する必要があります。pig 0.7.0 を選択し、PIG_CLASSPATH を次のように設定します。

export PIG_CLASSPATH=$HADOOP_HOME/conf

pig を実行すると、次のようなエラーが報告されます。

ERROR org.apache.pig.Main - ERROR 2999: Unexpected internal error. Failed to create DataStorage

そこで、$HADOOP_HOME にある hadoop-core.jar をコピーして、$PIG_HOME/lib にある hadoop20.jar を上書きし、次に「ant」にします。これで pig を実行できますが、dumporを使用するstoreと別のエラーが発生します:

Pig Stack Trace
---------------
ERROR 2998: Unhandled internal error. org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.setOutputPath(Lorg/apache/hadoop/mapreduce/Job;Lorg/apache/    hadoop/fs/Path;)V

java.lang.NoSuchMethodError: org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.setOutputPath(Lorg/apache/hadoop/mapreduce/Job;Lorg/apache/hadoop/fs/   Path;)V
    at org.apache.pig.builtin.BinStorage.setStoreLocation(BinStorage.java:369)
    ...
    at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:75)
    at org.apache.pig.Main.main(Main.java:357)
================================================================================

誰かがこのエラーに遭遇したことがありますか、それとも私のコンパイル方法が正しくありませんか? ありがとう。

4

3 に答える 3

0

start-all.shから逃げることを覚えていました/usr/local/binか? 私は同じ問題に遭遇し、基本的に Hadoop 自体を構成する手順をたどりました。Pig を使用できるようになりました。

于 2013-08-22T18:59:49.520 に答える
0

Pig (コア) jar にはバンドルされたHadoop 依存関係があり、使用するバージョンとは異なる場合があります。古いバージョンの Pig (< 0.9) を使用している場合は、Hadoopを使用せずに jar を構築するオプションがあります。

cd $PIG_HOME
ant jar-withouthadoop
cp $PIG_HOME/build/pig-x.x.x-dev-withouthadoop.jar $PIG_HOME

Then start Pig:
cd $PIG_HOME/bin
export PIG_CLASSPATH=$HADOOP_HOME/hadoop-core-x.x.x.jar:$HADOOP_HOME/lib/*:$HADOOP_HOME/conf:$PIG_HOME/pig-x.x.x-dev-withouthadoop.jar; ./pig


新しいバージョンの Pig にはビルド済みの withouthadoop バージョンが含まれているため (このチケットを参照)、ビルド プロセスをスキップできます。さらに、pig を実行すると、バンドルされたバージョンではなく PIG_HOME から withouthadoop jar が取得されるため、withhadoop.jar を PIG_CLASSPATH に追加する必要もありません (ただし、Pig を から実行する場合$PIG_HOME/bin) 。

..質問に戻る:
Hadoop 0.20 とその修正版 (0.20-append?) は、最新の Pig ディストリビューション (0.11.1) でも動作
します。

unpack Pig 0.11.1
cd $PIG_HOME/bin
export PIG_CLASSPATH=$HADOOP_HOME/hadoop-core-x.x.jar:$HADOOP_HOME/lib/*:$HADOOP_HOME/conf; ./pig

それでも " "が表示される場合は、Charles Menguy が提案したように、Failed to create DataStoragePig を開始する価値があります。これにより、Pig が適切な Hadoop バージョンを取得しているかどうかを確認できます..など.-secretDebugCmd

于 2013-05-29T08:18:42.697 に答える