2016-05-02 76 views

回答

4

您可以使用DistCp(分布式副本),它是一种允许您在集群之间复制数据或从/到不同文件系统(如S3或FTP服务器)复制数据的工具。

https://hadoop.apache.org/docs/r1.2.1/distcp2.html

您必须指定从外部集群复制数据的绝对路径:HDFS:// OtherClusterNN:端口/路径

此工具启动,从任何类型的并行复制数据的MapReduce工作可用于HDFS,FTP,S3,AZURE(最新版本等)的Hadoop FileSystem库中的源代码

要从不同版本的hadoop复制数据,而使用HDFS协议,则必须使用来自其中一个版本的HftpFileSystem。

+0

以这种方式..我们不需要担心2个服务器的任何内部配置(例如:节点数量)和表结构等。 –

+1

与HDFS的通信始终以NameNode开头,该URL是URL中的主机(hdfs:// NameNode:port/path)。 NameNode是保持群集中所有可用数据节点的轨迹以及每个HDFS块的位置。你不需要手工处理。在客户端收到每个块的位置后,它将能够直接联系数据节点以检索数据。 – RojoSam

+0

但是,如果您的两个群集都有不同的HDFS版本,那么这两个群集都不能共享,HDFS版本不保证向后兼容性。在这种情况下,解决方案是使用HftpFileSystem从源读取,因为此API仅用于读取。这个API保证兼容性版本 – RojoSam