sqoop之hive数据仓库和oracle数据库数据转换
Posted ItStar
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqoop之hive数据仓库和oracle数据库数据转换相关的知识,希望对你有一定的参考价值。
为了更直接精准的解决小伙伴的问题,特意建了一个社交群(936736476)为小伙伴提供讨论交流的平台。
1 sqoop简介
1.1 什么是sqoop?
sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、oracle)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。
1.2 使用sqoop将oracle数据导入到hdfs中
1) 首先在oracle选取要导入的表emp
注意:
如果报oracle driver找不到,请讲ojdbc14.jar拷贝至下面的目录
/opt/cloudera/parcels/CDH-5.4.0-1.cdh5.4.0.p0.27/lib/sqoop/lib
2) 将oracle中的emp表中的empno,ename,sal,deptno列导入到hdfs中的/tmp/chenjian/qy73emp目录下
sqoop import --connect jdbc:oracle:thin:@192.168.153.12:1521:orcl --username scott --password tiger --table emp --columns 'empno,ename,sal,deptno' -m 1 --target-dir '/tmp/chenjian/qy73emp'
参数解释
-m 是mapreduce的数量
3) 查看导出的效果
1.3 使用sqoop将oracle数据导入到hive中
sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.153.12:1521:orcl --username scott --password tiger --table empbak -m 1 --columns 'EMPNO,ENAME,SAL' --hive-table qy73empxx
参数解释:
--table 指定oracle中的表名
--hive-table 指定hive中的表名
错误:
解决方法:
--columns 参数中的列名必须大写
导入成功
1.4 使用sqoop将hive数据导入到oracle中
sqoop export --table tbl_zhouan --connect jdbc:oracle:thin:@192.168.153.12:1521:orcl --username scott --password tiger --export-dir /user/hive/warehouse/qy73db.db/zhouan /zhouan.txt --columns eid,name,salary,destination --input-fields-terminated-by ' ' --input-lines-terminated-by ' '
参数说明:
--table 指定oracle中的表名
--export-dir 指定数据源的绝对路径,hdfs中
--columns hive中表的列名
--input-fields-terminated-by hive中表属性分隔符
--input-lines-terminated-by hive中行分隔符
错误:
解决办法:
在oracle中创建表tbl_zhouan
查询oracle可以发现数据已经导出成功。
至此,hive和oracle数据转换已经成功完成!
猜你喜欢
免费资料:17310069471
潭州公开课讲师整理的Hbase架构解析视频
以上是关于sqoop之hive数据仓库和oracle数据库数据转换的主要内容,如果未能解决你的问题,请参考以下文章
sqoop命令,oracle导入到hdfs、hbase、hive