CDH6.3.2,不互通的cdh平台互导hive数据

发布时间:2024年01月15日

1、先导出所有建表语句,在源CDH服务器命令行输入下面命令,该库下所有建表语句保存至hive目录中的tables.sql文件中,不知道具体路径可以全局搜索一下,拿到源库hive的建表语句后,稍微处理一下,去目标库把表建好。

hive -e "use database; show tables;" | xargs -I '{}' sh -c 'hive -e "use database; show create table '{}';"' > tables.sql

2、然后再在源CDH服务器命令行输入下面命令,命令的意思就是查询后保存到data文件中

hive -e " select * from database.table;" > data.txt

3、在目标库中新建不带分区的临时表(因为有分区不能直接导入,如果 没有分区的话可以直接跳过这步,去4步直接导入)

4、将源库中导出的data文件复制到目标库服务器上,然后把文件加载到临时表

load data local inpath '/var/data.txt' overwrite into table database.table_cache ;

5、将临时表数据写到正式表中 ,需要注意的是,select不能直接*,而是要把所有列列出来

insert overwrite table database.table partition (分区列名)  select 列名1,列名2 from database.table__cache;

文章来源:https://blog.csdn.net/qq_29020037/article/details/117654804
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。