sqoop之hive数据仓库和oracle数据库数据转换

Posted ItStar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqoop之hive数据仓库和oracle数据库数据转换相关的知识,希望对你有一定的参考价值。

为了更直接精准的解决小伙伴的问题,特意建了一个社交群(936736476)为小伙伴提供讨论交流的平台。

sqoop简介

1.1 什么是sqoop?

sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、oracle)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。

sqoop之hive数据仓库和oracle数据库数据转换

1.2 使用sqoop将oracle数据导入到hdfs中

1) 首先在oracle选取要导入的表emp

sqoop之hive数据仓库和oracle数据库数据转换

注意:

如果报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) 查看导出的效果

sqoop之hive数据仓库和oracle数据库数据转换

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中的表名

sqoop之hive数据仓库和oracle数据库数据转换

错误:

sqoop之hive数据仓库和oracle数据库数据转换

解决方法:

--columns 参数中的列名必须大写

导入成功

sqoop之hive数据仓库和oracle数据库数据转换

sqoop之hive数据仓库和oracle数据库数据转换

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中行分隔符

错误:

sqoop之hive数据仓库和oracle数据库数据转换

解决办法:

在oracle中创建表tbl_zhouan

sqoop之hive数据仓库和oracle数据库数据转换

sqoop之hive数据仓库和oracle数据库数据转换

查询oracle可以发现数据已经导出成功。

sqoop之hive数据仓库和oracle数据库数据转换

至此,hive和oracle数据转换已经成功完成!

sqoop之hive数据仓库和oracle数据库数据转换

猜你喜欢








sqoop之hive数据仓库和oracle数据库数据转换

免费资料:17310069471


潭州公开课讲师整理的Hbase架构解析视频


以上是关于sqoop之hive数据仓库和oracle数据库数据转换的主要内容,如果未能解决你的问题,请参考以下文章

sqoop命令,oracle导入到hdfs、hbase、hive

sqoop抽取oracle数据至hive并建表

怎么用sqoop增量从hive往oracle数据库导数据

数据仓库之Sqoop Import

Hive数仓项目之sqoop相关操作访问咨询主题看板_全量流程

sqoop用法之mysql与hive数据导入导出#yyds干货盘点#