一、原集群操作:
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/%[email protected];\n",$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
原文地址:https://www.cnblogs.com/water-sky/p/11889820.html