错误:在java中运行嵌入式pig时无法创建数据存储

时间:2013-07-17 00:02:55

标签: hadoop apache-pig

我写了一个简单的程序来测试java中的嵌入式猪,以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 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为您链接到错误的jar,请参阅下面的链接,它很好地描述了这个问题。

http://localsteve.wordpress.com/2012/09/30/embedding-pig-for-cdh4-java-apps-fer-realz/

答案 1 :(得分:0)

当我尝试在map reduce模式下使用pig而不启动服务时,我遇到了同样的问题。

在地图缩小模式下使用pig之前,请使用jps检查所有服务。