hive跨集群迁移表
Posted water-sky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive跨集群迁移表相关的知识,希望对你有一定的参考价值。
一、原集群操作:
1、hdfs创建目录
hdfs dfs -mkdir /tmp/hive-export
2、hive导出表命令
hive -e "use 库;show tables" | awk ‘{printf "use 库;export table %s to @/tmp/hive-export/%s@;
",$1,$1}‘ | sed "s/@/‘/g" > export.sql
3、报错
return code -101 from org.apache.hadoop.hive.ql.exec.copytask org/apache/hadoop/tools/distcpoptions
使用 -hiveconf hive.root.logger=DEBUG,console 参数打印错误信息,有如下内容:
java.lang.NoClassDefFoundError: org/apache/hadoop/tools/DistCpOptions
4、原因
hive 最后移动数据的时候,需要调用hadoop-distcp-X.X.X.jar,
解决方法:只需要把$HADOOP_HOME/share/hadoop/tools/lib/hadoop-distcp-x.x.x.jar 拷贝到 $HIVE_HOME/lib下面,重启hive即可
5、继续执行2命令
6、hive导出数据到hdfs
hive -f export.sql
二、新集群操作
1、hdfs创建目录
hdfs dfs -mkdir /tmp/hive-export
2、将hdfs数据导入到新集群
hadoop distcp hdfs://原/tmp/hive-export/* /tmp/hive-export
3、修改export.sql
sed -i ‘s/export table/import table/g‘ export.sql
sed -i ‘s/ to / from /g‘ export.sql
4、执行导入还会报错,按照之前解决方法解决
5、hive导入
hive -f export.sql
以上是关于hive跨集群迁移表的主要内容,如果未能解决你的问题,请参考以下文章
自建Hive数据仓库跨版本迁移到阿里云Databricks数据洞察
HDFS跨集群(Insecure To Secure)数据迁移实战
自建Hive数据仓库跨版本迁移到阿里云E-MapReduce