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

同程旅行Hadoop集群跨机房迁移实践

集群迁移使用Shell脚本获取老集群整个Hive库的建库建表DDL

集群迁移使用Shell脚本获取老集群整个Hive库的建库建表DDL