2

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

我错过了一些非常明显的东西。有人可以帮我运行吗?

更多细节: 1. 我假设 hadoop 运行良好,因为我可以在 python 中运行 MapReduce 作业。2. pig -x local 运行如我所料。3.当我只是输入pig它给我以下错误

Pig 启动前的错误
----------------------------
错误 2999:意外的内部错误。创建数据存储失败

java.lang.RuntimeException:创建数据存储失败
    在 org.apache.pig.backend.hadoop.datastorage.HDataStorage.init(HDataStorage.java:75)
    在 org.apache.pig.backend.hadoop.datastorage.HDataStorage.(HDataStorage.java:58)
    在 org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.init(HExecutionEngine.java:214)
    在 org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.init(HExecutionEngine.java:134)
    在 org.apache.pig.impl.PigContext.connect(PigContext.java:183)
    在 org.apache.pig.PigServer.(PigServer.java:226)
    在 org.apache.pig.PigServer.(PigServer.java:215)
    在 org.apache.pig.tools.grunt.Grunt.(Grunt.java:55)
    在 org.apache.pig.Main.run(Main.java:452)
    在 org.apache.pig.Main.main(Main.java:107)
原因:java.io.IOException:本地异常调用 localhost/127.0.0.1:54310 失败:java.io.EOFException
    在 org.apache.hadoop.ipc.Client.wrapException(Client.java:775)
    在 org.apache.hadoop.ipc.Client.call(Client.java:743)
    在 org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:220)
    在 $Proxy0.getProtocolVersion(未知来源)
    在 org.apache.hadoop.ipc.RPC.getProxy(RPC.java:359)
    在 org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:106)
    在 org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:207)
    在 org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:170)
    在 org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:82)
    在 org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1378)
    在 org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66)
    在 org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1390)
    在 org.apache.hadoop.fs.FileSystem.get(FileSystem.java:196)
    在 org.apache.hadoop.fs.FileSystem.get(FileSystem.java:95)
    在 org.apache.pig.backend.hadoop.datastorage.HDataStorage.init(HDataStorage.java:72)
    ... 9 更多
引起:java.io.EOFException
    在 java.io.DataInputStream.readInt(DataInputStream.java:375)
    在 org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:501)
    在 org.apache.hadoop.ipc.Client$Connection.run(Client.java:446)
==================================================== ===============================
4

3 回答 3

3

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

这是解决我的问题的方法。
1.不使用hadoop重新编译pig。
2. 更新 PIG_CLASSPATH 以获取 $HADOOP_HOME/lib 中的所有 jar
3. 运行 pig。

谢谢。

于 2011-07-21T06:00:13.063 回答
0

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

于 2013-09-03T12:33:57.443 回答
-1

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

有关详细信息,请参见此处

于 2011-11-15T10:47:08.580 回答