我有两个hadoop集群,我的目标是使用hadoop -cp将所有hdfs文件从cluster1复制到cluster2。
Cluster1: Hadoop 0.20.2-cdh3u4
Cluster2: Hadoop 2.0.0-cdh4.1.1
现在,即使只是在-ls cluster2上对cluster1远程运行dfs cluster1命令,如下所示:
hadoop fs -ls hdfs://cluster1-namenode:8020/hbase我得到了例外:
ls:在本地异常上失败: java.io.IOException:响应为null;主机详细信息:本地主机为:"cluster2-namenode/10.21.xxx.xxx";目标主机为:"cluster1-namenode":8020;
我认为这是由于hadoop版本的差异,有什么解决办法吗?我以前的环境-集群1没有映射部署,这排除了所有的distcp,bhase可复制的选项。hbase的复制能力在cluster1上也是不可用的。我很难想出一种将hdfs数据从cluster1迁移到cluster2的方法,因为每个人都在谈论将cdh3升级到cdh4,而不是从3迁移到4。
发布于 2012-12-07 16:45:11
在cloudera cdh用户邮件线程中更详细地讨论了这一点:
https://groups.google.com/a/cloudera.org/forum/?fromgroups=#!topic/cdh-user/GeT1RTbRVcw
总而言之,
dfs -cp这样的常规DFS命令在CDH3和CDH4之间无法工作,因为两者都有不同的协议版本(并且在常规的RPC调用中彼此不兼容)。发布于 2013-02-26 10:30:04
关于圣杰的回答,我的经验中有几点说明:
distcp时,逗号使用hftp作为源,hdfs作为目标(因为hftp是只读的!)因此,该命令看起来如下:hadoop ftp://source.cluster1/path hdfs://destines.cluster1/path
https://stackoverflow.com/questions/13763901
复制相似问题