0

我正在尝试将 Hadoop Map-Reduce 作业从 CDH3u4 集群提交到在 CDH4.3 上运行的集群。(fs.default.namemapred.job.trackerConfiguration 参数设置为指向 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)
4

2 回答 2

0

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

我通过添加 cloudera mvn 依赖项解决了这个问题。您可以在此处找到依赖项列表。

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

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

1)您应该具有两个版本的依赖关系,并且可以在它们之间切换。
2)看看这里保持不同版本的依赖关系。

于 2014-04-18T07:12:27.693 回答
0

您需要将HADOOP_PREFIX环境变量设置为指向安装了 hadoop 2.XX 版本的目录。

例如

export HADOOP_PREFIX=pathtohadoop-2.2.0
于 2014-01-19T20:27:46.007 回答