我已经使用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) ================================================================================
答案 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。