Java に埋め込まれた pig をテストして mapreduce モードで実行する簡単なプログラムを作成しました。私が実行しているサーバーの Hadoop のバージョンは 0.20.2-cdh3u4a で、豚のバージョンは 0.10.0-cdh3u4a です。
ローカル モードで実行しようとすると、正常に実行されます。しかし、mapreduce モードで実行しようとすると、エラーが発生します。
http://pig.apache.org/docs/r0.9.1/cont.html#embed-javaに示すように、次のコマンドを使用してプログラムを実行します
javac -cp pig.jar EmbedPigTest.java
javac -cp pig.jar:.:/etc/hadoop/conf EmbedPigTest.java input.txt
私のプログラムは次のようなエラーを出します:
Exception in thread "main" java.lang.RuntimeException: Failed to create DataStorage
at org.apache.pig.backend.hadoop.datastorage.HDataStorage.init(HDataStorage.java:75)
at org.apache.pig.backend.hadoop.datastorage.HDataStorage.<init>(HDataStorage.java:58)
at org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.init(HExecutionEngine.java:214)
at org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.init(HExecutionEngine.java:134)
at org.apache.pig.impl.PigContext.connect(PigContext.java:183)
at org.apache.pig.PigServer.<init>(PigServer.java:226)
at org.apache.pig.PigServer.<init>(PigServer.java:215)
at org.apache.pig.PigServer.<init>(PigServer.java:211)
at org.apache.pig.PigServer.<init>(PigServer.java:207)
at WordCount.main(EmbedPigTest.java:9)
一部のオンライン リソースでは、この問題は Hadoop のバージョンが異なるために発生すると述べています。しかし、私は何をすべきか理解していませんでした。提案してください!!