有時候,我們需要做hadoop集群遷移時,要把大量儲存在hadoop集群上的資料也一併遷移過去。有2種方法可以使用:
1. old hadoop cluster--->old local disks---->transmission---->new local disks----->new hadoop cluster
2. old hadoop cluster---->mapreduce--->new hadoop cluster
很顯然第一種方法很不靠譜,我們採用第二種方式來做。我們使用的hadoop提供的distcp來完成集群間的資料拷貝。
1. 配置
說明:只需要在目標(destination)集群上做如下配置就好了
namenode:
hdfs-site.xml,加入
其它的配置與老的配置一樣。
/etc/hosts,在nn內網配置的上方加入外網的配置。如:
外網ip nn
主機名
內網ip nn主機名
內網ip dn主機名
內網ip dn主機名
datanode:
/etc/hosts,在nn內網配置的上方加入外網的配置。如:
外網ip nn
主機名
內網ip nn主機名
內網ip dn主機名
內網ip dn主機名
2. 重啟
namenode、jobtracker、nadanode
3. 關閉防火牆
命令:server iptables stop
說明:這裡只是為了測試方便,所以將防火牆停止了,實際中應該是要加
iptables
規則的。
4. 執行集群間拷貝命令
hadoop distcp /tmp/lalalala.txt hdfs:// destination 外網ip:9000/tmp/test/lalalala.txt
命令解釋:將老的hadoop上的lalalala.txt(在/tmp目錄下)檔案拷貝到新的集群上,/tmp/test/lalalala.txt。這裡只是拿乙個檔案做了測試,還可以是目錄,更多使用可參看distcp
說明:這裡的destination
外網ip:9000
中的port
一定要與
core-site.xml
中的fs.default.name
配置的port
一致。
Hadoop集群間資料拷貝distcp使用
distcp是hadoop集群間拷貝工具,使用mapreduce的方式,進行大資料在集群的拷貝,不同於簡單的資料copy,distcp會校驗資料,穩定傳輸,最後進行拷貝結果統計,彙總拷貝狀態,如拷貝成功的檔案數 大小等 基本命令 hadoop distcp option src dst 關於dist...
Hadoop集群間資料拷貝distcp使用
distcp是hadoop集群間拷貝工具,使用mapreduce的方式,進行大資料在集群的拷貝,不同於簡單的資料copy,distcp會校驗資料,穩定傳輸,最後進行拷貝結果統計,彙總拷貝狀態,如拷貝成功的檔案數 大小等 基本命令 hadoop distcp option src dst 關於dist...
hadoop 不同集群之間資料拷貝
hadoop不同集群之間資料拷貝,拷貝時兩個集群要用active namenode去拷貝,datanode是不具備拷貝功能的,所以當我們把資料拿到hdfs路徑上時,要去判斷當前集群哪個主節點是active的,所以大致步驟為 資料落到hdfs上 beeline u jdbc hive2 e inser...