将整个HDFS从一个群集传输到另一个群集

时间:2013-01-11 10:37:27

标签: hadoop hive

我的HDFS上有很多hive表存储在一个有5个节点的测试集群上。数据应约为70 Gb * 3(重新定位)。不,我想将整个设置转移到具有更多节点的不同环境。无法在两个群集之间建立网络连接。

问题是我没有太多时间使用新的Cluster,也没有可能用其他测试环境测试转移。因此我需要一个可靠的计划。 :)

我有哪些选择?

如何在新群集上以最少的配置工作来传输配置单元设置?

是否可以将5个节点的hdfs directorys复制到新群集的5个节点,然后将其余节点添加到新群集并启动平衡器?

3 个答案:

答案 0 :(得分:2)

没有网络连接,这将是棘手的!

我会

  1. 将文件从HDFS复制到某种可移动存储设备(USB记忆棒,外置硬盘等)
  2. 将存储移至新群集
  3. 将文件复制回HDFS
  4. 请注意,这不会保留文件创建/上次访问时间等元数据,更重要的是保留所有权和权限。

    对这个过程的小规模测试应该非常简单。

    如果您可以获得(甚至是暂时的)两个群集之间的网络连接,那么distcp就可以了。它使用map reduce来平衡传输,可能会节省大量时间。

答案 1 :(得分:1)

您可以使用hadoop distcp命令将目录和文件从一个群集复制到另一个群集

以下是一个描述其用法的小例子

http://souravgulati.webs.com/apps/forums/topics/show/8534378-hadoop-copy-files-from-one-hadoop-cluster-to-other-hadoop-cluster

答案 2 :(得分:0)

您可以使用以下命令复制数据: sudo -u hdfs hadoop --config {PathtotheVpcCluster} / vpcCluster distcp hdfs:// SourceIP:8020 / user / hdfs / WholeData hdfs:// DestinationIP:8020 / user / hdfs / WholeData