Hadoop的数据迁移
主要的命令: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;
天下难事,必作于易;天下大事,必作于细