我编写了一个简单的程序来测试java中嵌入的pig在mapreduce模式下运行。我运行的服务器中的hadoop版本是0.20.2-cdh3u4a,pig版本是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版本引起的。但是,我不明白我该怎么做。请提供建议!!
2条答案
按热度按时间eh57zj3b1#
这是因为您链接到了错误的jar,请查看下面的链接,它很好地描述了这个问题。
http://localsteve.wordpress.com/2012/09/30/embedding-pig-for-cdh4-java-apps-fer-realz/
gzszwxb42#
当我尝试在map reduce模式下使用pig而不启动服务时,我也遇到了同样的问题。
在MapReduce模式下使用pig之前,请检查所有使用jps的服务。