2016-05-02 119 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