Hadoop 服务器IPC版本7无法与客户端版本4通信

Hadoop 服务器IPC版本7无法与客户端版本4通信,hadoop,mapreduce,ipc,Hadoop,Mapreduce,Ipc,我正在尝试提交一个Hadoop Map Reduce作业,从一个CDH3u4集群到在CDH4.3上运行的集群。(将fs.default.name和mapred.job.tracker配置参数设置为指向CDH4.3集群)。下面是堆栈跟踪 1) 我们可以将hadoop作业提交给在不同版本上工作的远程集群吗? 2) 有没有解决办法 hadoop jar Standalone.jar Exception in thread "main" org.apache.hadoop.ipc.RemoteExcep

我正在尝试提交一个Hadoop Map Reduce作业,从一个CDH3u4集群到在CDH4.3上运行的集群。(将
fs.default.name
mapred.job.tracker
配置参数设置为指向CDH4.3集群)。下面是堆栈跟踪

1) 我们可以将hadoop作业提交给在不同版本上工作的远程集群吗? 2) 有没有解决办法

hadoop jar Standalone.jar

Exception in thread "main" org.apache.hadoop.ipc.RemoteException: Server IPC version 7 cannot communicate with client version 4
    at org.apache.hadoop.ipc.Client.call(Client.java:1107)
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:226)
    at $Proxy0.getProtocolVersion(Unknown Source)
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:398)
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:384)
    at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:129)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:255)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:217)
    at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1563)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:67)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:1597)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1579)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:228)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:111)
    at com.poc.standalone.HDFSRemoteAccess.main(HDFSRemoteAccess.java:43)
    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:197)
线程“main”org.apache.hadoop.ipc.RemoteException中的异常:服务器ipc版本7无法与客户端版本4通信 位于org.apache.hadoop.ipc.Client.call(Client.java:1107) 位于org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:226) 位于$Proxy0.getProtocolVersion(未知源) 位于org.apache.hadoop.ipc.RPC.getProxy(RPC.java:398) 位于org.apache.hadoop.ipc.RPC.getProxy(RPC.java:384) 位于org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:129) 位于org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:255) 位于org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:217) 位于org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89) 位于org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1563) 位于org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:67) 位于org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:1597) 位于org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1579) 位于org.apache.hadoop.fs.FileSystem.get(FileSystem.java:228) 位于org.apache.hadoop.fs.FileSystem.get(FileSystem.java:111) 位于com.poc.standalone.HDFSRemoteAccess.main(HDFSRemoteAccess.java:43) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中 位于java.lang.reflect.Method.invoke(Method.java:597) 位于org.apache.hadoop.util.RunJar.main(RunJar.java:197)
您需要设置
HADOOP\u PREFIX
环境变量以指向已安装HADOOP 2.X.X版本的目录

e、 g


我在尝试连接到hdfs时遇到了这个异常。我使用的是cdh4.6版本

我通过添加cloudera mvn依赖项解决了这个问题

首先,您应该检查您的依赖关系

另一点是,您应该尝试使用fs.deafultFS配置参数,而不是(或旁边的)fs.default.name参数。因为在cdh4X中不推荐使用fs.default.name

1) 您应该拥有两个版本的依赖项,并且可以在它们之间切换。
2) 保留不同版本的依赖项

export HADOOP_PREFIX=pathtohadoop-2.2.0