hive数据迁移



数据迁移脚本:
1、在原集群上创建,并设置相应权限
hadoop  fs -mkdir /tmp/hive-export
2、生成导出脚本
hive -e "use fangyc;show tables " | awk '{printf "use fangyc;export table %s to @/tmp/hive-export/%s@;\n",$1,$1}' | sed "s/@/'/g" > export.hql
fangyc:是数据库名,根据实际情况修改
3、手工导出数据到hdfs
hive -f export.hql
命令查看下导出数据:hadoop fs -ls  /tmp/hive-export


-4、下载hdfs数据到本地并传送到目标hadoop集群的/tmp/hive-export 目录
//注意在目标集群上创建 /tmp/hive-export目录,并且设置相应的操作权限
hdfs dfs -get /tmp/hive-export/*  //原集群操作
hdfs dfs -put * /tmp/hive-export  //目标集群操作


//单个表数据移动,有bug,此处可以使用distcp  源数据   目标数据
//hadoop distcp hdfs://namenode1/tmp/hive-export/表名  hdfs://namenode2/tmp/hive-export/


5、在目标集群上构建
构造导入语句
cp export.hql import.hql 
sed -i 's/export table/import table/g' import.hql
sed -i 's/ to / from /g' import.hql
6、导入数据

hive -f import.hql


分区特别处理(元数据出炉、分区数据导入)

先编辑 import.hql为单一表的操作,最好复制一份

然后执行hive -f import.hql,就是加在元数据

删除dt分区

hadoop fs -rm -r /user/hive/warehouse/zh000001_vrv.db/browselog_gw/dt*

上传本地备份数据中的所有dt到表中

hadoop fs -put  browselog_gw/dt*   /user/hive/warehouse/zh000001_vrv.db/browselog_gw/


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值