主要的命令:DistCp
官方有明確的解釋:http://hadoop.apache.org/docs/r1.0.4/cn/distcp.html
概述:
DistCp(分布式拷貝)是用於大規模集群內部和集群之間拷貝的工具。 它使用Map/Reduce實現文件分發,錯誤處理和恢復,以及報告生成。 它把文件和目錄的列表作為map任務的輸入,每個任務會完成源列表中部分文件的拷貝。 由於使用了Map/Reduce方法,這個工具在語義和執行上都會有特殊的地方。 這篇文檔會為常用DistCp操作提供指南並闡述它的工作模型。
使用方法:
DistCp最常用在集群之間的拷貝:
hadoop distcp hdfs://nn1:8020/foo/bar hdfs://nn2:8020/bar/foo
這條命令會把nn1集群的/foo/bar目錄下的所有文件或目錄名展開並存儲到一個臨時文件中,這些文件內容的拷貝工作被分配給多個map任務, 然后每個TaskTracker分別執行從nn1到nn2的拷貝操作。注意DistCp使用絕對路徑進行操作。
同步的命令:
hadoop distcp -pc -m 40 hdfs://xx.xx.xx.00:8020/user/hive/warehouse/test.db/table_name/ hdfs://xx.xx.xx.01:8020/user/hive/warehouse/test.db/table_name
(在目標主機上執行)
在hive中進行修復表分區
msck REPAIR TABLE table_name;
在impala中修復元數據
INVALIDATE METADATA table_name;