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;

 

posted @ 2020-03-26 19:32  醉城、  阅读(929)  评论(0编辑  收藏  举报