首页 / LINUX / linux下进行hive数据迁移
linux下进行hive数据迁移
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux下进行hive数据迁移,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2191字,纯文字阅读大概需要4分钟。
内容图文
![linux下进行hive数据迁移](/upload/InfoBanner/zyjiaocheng/974/2d7300dd94164ca6958da4d8cb7025b2.jpg)
尝试了阿里云上推荐的数据迁移方式
https://yq.aliyun.com/articles/66042
首先确定一个默认的导出的hive数据库
vi ~/.hiverc use test;
然后在hdfs上创建一个临时目录
hdfs dfs -mkdir /tmp/test
通过hive生成默认的导出数据库的表 转换成导出的hql文件
hive -e "show tables " | awk '{printf "export table %s to |/tmp/test/%s|;\n",$1,$1}' | sed "s/|/'/g" > /home/hive/qcf/export.hql
手动运行hql文件 把hive数据库中的表和数据先存储到hdfs中创建的临时目录中
hive -f export.hql
将hdfs上存储到临时目录的数据下载到本地集群
hdfs dfs -get /tmp/test /home/test
下载完成在把数据文件迁移到新的hadoop集群中
迁移完成后把迁移的数据放到新的集群环境的临时目录中
hdfs dfs -put /home/test /tmp/test
把上面的脚本备份一下由导出脚本通过sed命令转换成导入脚本
cp export.hql import.sql
sed -i 's/export table/import table/g' import.sql
sed -i 's/ to / from /g' import.sql
在新的集群中也要设置hive的默认导入数据库
vi ~/.hiverc use test;
执行命令
hive -f import.sql
到此hive数据迁移过程已经完成
由于hive中的数据过大所以在执行hive -f操作的时候尽量通过linux的后台进行运行
同时在做导出操作时会发现hive报错 原因是hive缺少hadoop中的两个jar包
hadoop-common-2.6.2.jar hadoop-distcp-2.6.2.jar
使用是将这两个jar包放到hive/lib目录下面
导出过程也会遇到hive在执行是 java.lang.OutOfMemoryError: GC overhead limit exceeded
这个问题我是通过修改hive-env.sh文件来修改的
在else 中增加-Xmx4096m 加大初始化堆内存的大小,根据linux系统实际运行内存决定
if [ "$SERVICE" = "cli" ]; then
if [ -z "$DEBUG" ]; then
export HADOOP_OPTS="$HADOOP_OPTS -XX:NewRatio=12 -Xms10m -XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:+UseParNewGC -XX:- UseGCOverheadLimit"
else
export HADOOP_OPTS="$HADOOP_OPTS -XX:NewRatio=12 -Xms10m -Xmx4096m -XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:-UseGCOverheadLimit"
fi
fi
之后在导入数据的时候也遇到一个问题 java.lang.OutOfMemoryError: Java heap space
这个问题没有得到解决 导致数据无法正常导入
然后我就直接将本地文件put到hive的/warehouse/*.db 的目录中
数据转存到对应的实际上并没有在hive数据库中存在映射关系
我们需要手动创建分区 分区创建好之后 put进去的数据就会在hive命令中可以被查到了
本篇文章只是描述和分享一下hive数据迁移的一些过程和遇到的问题,如果有什么疑问可以留言。
内容总结
以上是互联网集市为您收集整理的linux下进行hive数据迁移全部内容,希望文章能够帮你解决linux下进行hive数据迁移所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。