distcp是hadoop集群間拷貝工具,使用mapreduce的方式,進行大資料在集群的拷貝,不同於簡單的資料copy,distcp會校驗資料,穩定傳輸,最後進行拷貝結果統計,彙總拷貝狀態,如拷貝成功的檔案數、大小等
基本命令:hadoop distcp -option src dst
關於distcp拷貝覆蓋:
src = hdfs://nn1:8020/target/first
dst = hdfs://nn2:8020/target/first
hadoop distcp hdfs://nn1:8020/target/first hdfs://nn2:8020/target/first
如果 src路徑的字尾,跟dst的字尾一樣,那麼這樣表示,將src的first中內容,拷貝到dst的first中,
如果在dst的target下,沒有first目錄,那麼會在dst中新建first目錄,並將src中的first目錄,複製到dst的first中
但是如果dst的first已經存在,那會認為,將 src的first,移動到dst的first中,所以最後的效果就是:
hdfs://nn2:8020/target/first/first
理解起來就是,命令是把p1/a 拷貝到 p2/, 現在寫成了 copy p1/a p2/a
如果p2/a 不存在,那就是理解成,把p1/a 拷貝到 p2/a中,並且新建p2/a
但是如果 p2/a 存在,那是理解成把p1/a 拷貝到 p2/a下,最後就是變成 p2/a/a
所以為了避免該語言出問題,
可以寫成 p1/a ,p2/ , 那目的就是將 p1/a 考到p2下。不管p2下有沒有a,這樣就不會出現 p2/a/a 這樣的現象
-update 更新
if -update is used, 會將目的目錄中,對對比源目的中,檔案大小和內容不同的檔案進行更新
-overwrite 覆蓋
if -overwrite is used, 直接覆蓋目的目錄的對應檔案。
Hadoop集群間資料拷貝
有時候,我們需要做hadoop集群遷移時,要把大量儲存在hadoop集群上的資料也一併遷移過去。有2種方法可以使用 1.old hadoop cluster old local disks transmission new local disks new hadoop cluster 2.old h...
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...