【问题标题】:cant run pig with single node hadoop server无法使用单节点 hadoop 服务器运行 pig
【发布时间】:2011-07-20 18:50:14
【问题描述】:

我已经用 ubuntu 设置了一个虚拟机。它将 hadoop 作为单个节点运行。后来我在上面安装了apache pig。 apache pig 在本地模式下运行良好,但它总是 prom 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) ==================================================== ===============================

【问题讨论】:

  • 您是否定义了正确的 hadoop 环境变量,以便 pig 可以找到配置?
  • 是的,我做到了。这可能是因为用户权限吗?有什么想法吗?

标签: hadoop apache-pig


【解决方案1】:

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

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

谢谢。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      详情请见here

      【讨论】:

      • 如何解决这个错误?将解决方案放在这里而不是链接它以避免链接腐烂。
      猜你喜欢
      • 2014-09-03
      • 2018-01-27
      • 2021-10-04
      • 2013-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多