簡體   English   中英

如何將數據從CDH3群集遷移到(不同的)CDH4群集?

[英]How to migrate data from a CDH3 cluster to a (different) CDH4 cluster?

我想將數據從CDH3復制到CDH4(在另一台服務器上)。 我的CDH4服務器設置為看不到CDH3,因此我必須將數據從CDH3上游推送到CDH4。 (這意味着我無法從CDH4運行distcp命令來復制數據)。 如何通過在較低版本的CDH3 hadoop上運行命令來將數據傳輸到CDH4的HDFS,或者這是不可能的?

理想情況下,您應該能夠使用distcp將數據從一個HDFS集群復制到另一個集群。

hadoop distcp -p -update "hdfs://A:8020/user/foo/bar" "hdfs://B:8020/user/foo/baz"

-p用於保留狀態,-update用於覆蓋數據(如果文件已經存在但大小不同)。

實際上,根據所使用的Cloudera的確切版本,您可能會遇到不兼容性問題,例如CRC不匹配錯誤 在這種情況下,您可以嘗試使用HTFP而不是HDFS,或者將群集升級到最新版本的CDH4,然后查看發行說明以查看是否存在任何相關的已知問題和解決方法。

如果使用distcp仍然有問題,請隨時創建一個新的stackoverflow問題,其中包含確切的錯誤消息,CDH3和CDH4的版本以及確切的命令。

傳輸黑白兩種不同版本的HDFS時,必須將distcp與以下命令配合使用(注意hftp ):

hadoop distcp hftp ://源名稱節點 :50070 / user / hdfs://目標名稱節點:8020 / user /

DistCp僅是集群內的。

我知道的唯一方法是對每個適合本地磁盤的數據子集使用“ fs -get”,“ fs -put”。

為了在兩個不同版本的Hadoop之間進行復制,通常將使用HftpFileSystem。 這是一個只讀文件系統,因此DistCp必須在目標群集上運行(更具體地說,在可以寫入目標群集的TaskTrackers上運行)。 每個源均指定為hftp:///(默認dfs.http.address為:50070)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM