hive集群间数据迁移,export+import

官方参考链接:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ImportExport

The EXPORT and IMPORT commands were added in Hive 0.8.0 (see HIVE-1918).

Replication extensions to the EXPORT and IMPORT commands were added in Hive 1.2.0 (see HIVE-7973 and Hive Replication Development).


1.生成导出脚本

beeline -u 'jdbc:hive2://bigdata01.younge.club:10000' -n test-user -p 123456 -e "use bigdata_ods;show tables" | grep 'ods*' | awk '{print $2}' | awk '{printf "export table bigdata_ods.%s to @/tmp/hive_export/%s@;\n",$1,$1}' | sed "s/@/'/g" > hive_export.hql


3.执行导出脚本
beeline -u 'jdbc:hive2://bigdata01.younge.club:10000' -n test-user -p 123456 -f hive_export.hql


4.下载hdfs数据到本地
hdfs dfs -get /tmp/hive_export/


5.压缩生成的本地的hive_export文件夹
tar -czvf hive_export.tar.gz hive_export


6.上传到目标集群并解压缩
tar -xvzf hive_export.tar.gz


7.上传到目标集群的HDFS目录中
hdfs dfs -put hive_export /tmp/hive_export


8.构造导入脚本
cp hive_export.sql hive_import.sql
sed -i 's/export table/import table/g' hive_import.sql
sed -i 's/ to / from /g' hive_import.sql


9.hive新建目标数据库
create database bigdata_ods;


10.执行导入脚本,导入数据
beeline -u 'jdbc:hive2://bigdata01.younge.club:10000' -n test-user -p 123456 -f hive_import.hql
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
有以下几种方法可以从一个Hive集群迁移数据到另外一个集群: 1. 使用Hadoop命令行工具将数据从一个HDFS集群复制到另一个HDFS集群。首先,您需要在源集群中使用Hadoop命令行工具将数据从HDFS中导出到本地文件系统。然后,将数据上传到目标集群中的HDFS。最后,在目标集群上使用Hive命令行工具将数据加载到目标集群Hive中。 2. 使用Sqoop将数据从一个RDBMS中导出并加载到另一个RDBMS中。Sqoop是一个用于在Hadoop和关系数据库之传输数据的开源工具。您可以使用Sqoop将数据从源RDBMS中导出为CSV文件,然后将文件上传到目标集群中,并将数据加载到目标RDBMS中。 3. 使用Hive的复制表功能将数据从源集群中的Hive复制到目标集群中的Hive。在源集群中,您可以使用Hive的CREATE TABLE语句创建一个新表,并使用INSERT INTO语句将数据从旧表中复制到新表中。然后,在目标集群上使用Hive的CREATE TABLE语句创建一个新表,该表与源集群中的新表具有相同的结构。最后,在目标集群上使用INSERT INTO语句从源集群中的新表中复制数据到目标集群中的新表中。 4. 使用Hive的导出功能将数据从源集群中的Hive导出为CSV文件,然后将文件上传到目标集群中,并使用Hive的导入功能将数据加载到目标集群中的Hive中。在源集群中,您可以使用Hive的INSERT OVERWRITE语句将数据导出为CSV文件。然后,将文件上传到目标集群中,并使用Hive的LOAD DATA语句将数据加载到目标集群中的Hive中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值