gpt4 book ai didi

hadoop hdfs 从 cdh3 迁移到 cdh4

转载 作者:可可西里 更新时间:2023-11-01 15:18:15 24 4
gpt4 key购买 nike

我有两个 hadoop 集群,我的目标是使用 hadoop -cp 将所有 hdfs 文件从 cluster1 复制到 cluster2

集群 1:Hadoop 0.20.2-cdh3u4

集群 2:Hadoop 2.0.0-cdh4.1.1

现在,即使只是在 cluster2 上远程对 cluster1 运行 dfs -ls 命令,如下所示:

hadoop fs -ls hdfs://cluster1-namenode:8020/hbase

我遇到异常:

ls:因本地异常而失败:java.io.IOException:响应为空。;主机详细信息:本地主机是:“cluster2-namenode/10.21.xxx.xxx”;目标主机是:“cluster1-namenode”:8020;

我认为这是由于 hadoop 版本差异造成的,有什么解决方法吗?我的旧环境 cluster1 没有部署 mapred,这排除了所有 distcp、bhase 可复制选项。并且 hbase 复制能力在 cluster1 上也不可用。我正在努力想办法将 hdfs 数据从 cluster1 迁移到 cluster2 因为每个人都在谈论将 cdh3 升级到 cdh4 而不是从 3 迁移到 4。

最佳答案

cloudera cdh 用户邮件线程中对此进行了更多讨论:

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

总而言之,

  1. CDH3 和 CDH4 之间的 dfs -cp 等常规 DFS 命令将不起作用,因为它们具有不同的协议(protocol)版本(并且在常规 RPC 调用中彼此不兼容)。

  2. Distcp 可用于跨集群复制 hdfs 数据,甚至从 cdh3 复制到 cdh4,但这里有一些先决条件:您需要在 cdh4 集群上运行 distcp 命令,而且 cdh4 集群需要部署/可用 mapred . cdh3集群不一定需要mapred。

  3. 当运行 distcp 命令时,不要使用 hdfs 作为源路径,使用 hftp 作为源路径,同时使用 hftp 作为目标路径(因为 hftp 是只读的,您将需要对目标路径的写权限) 所以命令看起来像:

    hadoop distcp hftp://hadoop-namenode.cluster1/hbase hftp://hadoop-namenode.cluster2/hbase

关于hadoop hdfs 从 cdh3 迁移到 cdh4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13763901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com