hive 数据迁移遇到的问题
一、数据迁移流程
目前没有采用官方给定的命令来进行数据迁移,而是使用创建表+copy数据的方式。
二、具体的流程如下
1、从需要被迁移的hive数据库里面把表的执行语句获取出来;
2、修改需要修改的信息(比如名称空间);
3、在目标集群的hive里面执行创建表语句;
4、使用distcp拷贝源hive数据到目标集群。
上述这些可以编写脚本,实现自动化完成,如果开启kerberos,那就把相应的认证加上。
三、遇到的问题
关联HDFS文件 hive并不会自动关联hdfs中指定目录的partitions目录,需要手工操作(一开始没注意到这块,发现在查询数据的时候,死活查询数据为空。)。 通过给已经创建的表增加分区数据的方式,与HDFS上的文件相互关联起来。 语法格式:
alter table 表名称 add partition (分区名1=分区值1,...) location 'HDFS上的文件的路径';
这块也可以全部封装到脚本里面。通过开启多线程模式,迁移还是很快。
记录学习和生活的酸甜苦辣.....哈哈哈