目前项目涉及需求:迁移Hadoop数仓(由CDH环境迁移到HDP环境),涉及到hive表的重建,以及hdfs上文件的迁移,以及元数据、分区表的修复。
一、建表
hive重建表比较简单,首先show create table tablename;然后把建表语句拷贝下来即可,这里要注意的是,特殊分割符和存储文件格式(默认textfile,项目中设计parquet格式),需要将分割语句和stored as XXX
语句也加上。否则会导致hadoop集群的hive建表时的默认的存储格式不一致而报错
这里我写了一个批量建表的shell脚本,如果表非常多可以采用
《批量生成hive建表语句》
二、HDFS文件数据迁移
hdfs的数据迁移,有几种方式可以选择:
1、如果数据在关系型数据库中也存在一份,可以直接使用sqoop命令导入新集群。
2、如果表不是很多,可以先从hdfs上把数据get到本地,随后再load到新集群的hive表中,或直接put进相应的hdfs路径。
3、使用hadoop distcp
命令ÿ