不能用单节点hadoop服务器运行猪

时间:2011-07-20 18:50:15

标签: hadoop apache-pig

我已经使用ubuntu设置了一个虚拟机。它将hadoop作为单个节点运行。后来我在上面安装了apache pig。 apache pig在本地模式下运行得很好,但它始终是ERROR 2999: Unexpected internal error. Failed to create DataStorage

我遗漏了一些非常明显的东西。有人可以帮我解决这个问题吗?

更多细节: 1.我认为hadoop运行正常,因为我可以在python中运行MapReduce作业。 猪-x本地运行如我所料。 3.当我输入pig时,它会给我以下错误

Error before Pig is launched
----------------------------
ERROR 2999: Unexpected internal error. Failed to create DataStorage

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.(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.(PigServer.java:226)
    at org.apache.pig.PigServer.(PigServer.java:215)
    at org.apache.pig.tools.grunt.Grunt.(Grunt.java:55)
    at org.apache.pig.Main.run(Main.java:452)
    at org.apache.pig.Main.main(Main.java:107)
Caused by: java.io.IOException: Call to localhost/127.0.0.1:54310 failed on local exception: java.io.EOFException
    at org.apache.hadoop.ipc.Client.wrapException(Client.java:775)
    at org.apache.hadoop.ipc.Client.call(Client.java:743)
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:220)
    at $Proxy0.getProtocolVersion(Unknown Source)
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:359)
    at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:106)
    at org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:207)
    at org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:170)
    at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:82)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1378)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1390)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:196)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:95)
    at org.apache.pig.backend.hadoop.datastorage.HDataStorage.init(HDataStorage.java:72)
    ... 9 more
Caused by: java.io.EOFException
    at java.io.DataInputStream.readInt(DataInputStream.java:375)
    at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:501)
    at org.apache.hadoop.ipc.Client$Connection.run(Client.java:446)
================================================================================

3 个答案:

答案 0 :(得分:3)

Link帮助我了解可能的失败原因。

这是解决我的问题的原因。
1.没有hadoop重新编译猪。
2.更新PIG_CLASSPATH以获得$ HADOOP_HOME / lib的所有罐子 3.跑猪。

感谢。

答案 1 :(得分:0)

将PIG_CLASSPATH设置为指向正确的HADOOP_HOME安装,以便Pig可以从core-site.xml,mapreduce-site.xml和hdfs-site.xml中获取您的群集信息,最好按照链接进行正确安装。

答案 2 :(得分:-1)

只需安装Cygwin,然后将Cygwin路径添加到路径环境变量:

有关详细信息,请参阅here