我试图让猪开始失败:
$ pig
2013-05-10 18:03:22,972 [main] INFO org.apache.pig.Main - Apache Pig version 0.11.1 (r1459641) compiled Mar 22 2013, 02:13:53
2013-05-10 18:03:22,972 [main] INFO org.apache.pig.Main - Logging error messages to: /Users/barclaydunn/Environment/pig-0.11.1/pig_1368223402970.log
2013-05-10 18:03:23,151 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: hdfs://stage-hadoop101.cluster:8020/hbase
2013-05-10 18:03:23,704 [main] ERROR org.apache.pig.Main - ERROR 2999: Unexpected internal error. Failed to create DataStorage
Details at logfile: /Users/barclaydunn/Environment/pig-0.11.1/pig_1368223402970.log
日志文件内容:
$ cat /Users/barclaydunn/Environment/pig-0.11.1/pig_1368223402970.log
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.<init>(HDataStorage.java:58)
at org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.init(HExecutionEngine.java:204)
at org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.init(HExecutionEngine.java:117)
at org.apache.pig.impl.PigContext.connect(PigContext.java:240)
at org.apache.pig.PigServer.<init>(PigServer.java:213)
at org.apache.pig.PigServer.<init>(PigServer.java:198)
at org.apache.pig.tools.grunt.Grunt.<init>(Grunt.java:47)
at org.apache.pig.Main.run(Main.java:535)
at org.apache.pig.Main.main(Main.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Caused by: org.apache.hadoop.ipc.RemoteException: Server IPC version 7 cannot communicate with client version 4
at org.apache.hadoop.ipc.Client.call(Client.java:1070)
at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
at com.sun.proxy.$Proxy1.getProtocolVersion(Unknown Source)
at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:396)
at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:379)
at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:119)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:238)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:203)
at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1386)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1404)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:254)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:123)
at org.apache.pig.backend.hadoop.datastorage.HDataStorage.init(HDataStorage.java:72)
... 14 more
================================================================================
搜索“服务器IPC版本7无法与客户端版本4通信”并未显示任何有用的信息。
答案 0 :(得分:5)
将HADOOP_HOME
设置为指向您正在使用的hadoop。
来自pig getting started页面:
(您可以通过设置运行具有不同版本的Hadoop的Pig HADOOP_HOME指向已安装Hadoop的目录。 如果你没有设置HADOOP_HOME,默认情况下Pig会运行 嵌入式版本,目前是Hadoop 1.0.0。)
IPC版本4适用于Hadoop 1.0,而版本7适用于Hadoop 2.0,因此听起来您使用嵌入式hadoop版本运行,但尝试与Hadoop 2集群通信。
答案 1 :(得分:0)
当cdh3作业尝试与cdh4 HDFS通信时,可能会导致“服务器IPC版本7无法与客户端版本4通信”。
检查您的mapred.job.tracker和fs.default.name设置