首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从cdh3到cdh4的hadoop迁移

从cdh3到cdh4的hadoop迁移
EN

Stack Overflow用户
提问于 2012-12-07 13:18:38
回答 2查看 3.1K关注 0票数 1

我有两个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命令,如下所示:

代码语言:javascript
复制
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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-07 16:45:11

在cloudera cdh用户邮件线程中更详细地讨论了这一点:

https://groups.google.com/a/cloudera.org/forum/?fromgroups=#!topic/cdh-user/GeT1RTbRVcw

总而言之,

  1. dfs -cp这样的常规DFS命令在CDH3和CDH4之间无法工作,因为两者都有不同的协议版本(并且在常规的RPC调用中彼此不兼容)。
  2. 甚至可以从cdh3复制hdfs数据到cdh4,但是这里有几个先决条件:您需要在cdh4集群上运行Distcp命令,还需要部署/可用cdh4集群。cdh3集群不一定需要映射。
  3. 运行distcp命令时,不要将hftp用作源路径,使用hftp作为源路径,而hftp用于目标路径(因为hftp是只读的,因此需要对目标路径进行写访问),因此命令如下: hadoop distcp h ftp://hadoop-namenode.cluster1/hbase h ftp://hadoop-namenode.cluster2/hbase
票数 1
EN

Stack Overflow用户

发布于 2013-02-26 10:30:04

关于圣杰的回答,我的经验中有几点说明:

  1. 它可以在CDH4和CDH3上运行,重要的是命令在目标集群上运行。
  2. 在运行distcp时,逗号使用hftp作为源,hdfs作为目标(因为hftp是只读的!)因此,该命令看起来如下:

hadoop ftp://source.cluster1/path hdfs://destines.cluster1/path

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13763901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档