sqoop导入oracle分区表,sqoop导入oracle数据至hive

一、目的

将oracle数据文件dmp中的数据导入到hive中。

目标分解:

由于已有的数据都在dmp文件中,因此要先将dmp文件中的数据导入到oracle中,再将oracle中的表导入到hive中。

二、dmp文件导入到oracle数据库

dmp文件:只有一个不知来源的dmp文件,不知道从哪个数据库中导出的,也不知道导出用户是谁。(不要紧,后面可以根据错误提示一步步改)

oracle数据库:安装oracle 11g 64bit版本。

1.首先尝试使用imp命令导入,发现报错;后改用impdp命令。

2.使用impdp命令的过程中,根据错误提示,找到了正确的使用流程。

3.首先,是创建表空间:

创建一个与dmp文件中名字相同的表空间,数据文件要设置的大一些,因为dmp文件不仅有数据还有索引,导入后会占据oracle很大的空间。

4.然后,创建新的oracle用户:

create user abc identified by abc default tablespace TBS;

并赋予一定的权限:

grant connect,resource to wrs;

grant create session to wrs;

5.下一步,使用管理员创建本地dmp文件的目录:

首先使用system账户登录,

然后

SQL> conn /as sysdba;

SQL> create directory db_bak as 'e:\db_bak';(e:\db_bak目录下存放要导入的dmp文件)

SQL> grant read,write on directory db_bak to abc;(赋予新建的用户abc以读写目录的权限)

6.接下来,就可以正确执行impdp命令了:

打开cmd命令行,执行

impdp abc/abc directory=db_bak dumpfile=001.dmp remap_schema=source:abc full=y;

等待完成即可。

三、oracle数据表导入到hive中

1.首先要保证oracle可以远程访问,因此要关闭防火墙。

2.通过Net Manager配置Oracle 11g本地监听服务。可以参考http://blog.csdn.net/mozart_cai/article/details/8596504

3.打开Net Configuration Assistant,选择 “本地网络服务名配置”,重新配置,进行测试,用新建的用户abc测试。可以参考http://www.cnblogs.com/icerainsoft/archive/2011/11/16/2251568.html

4.使用sqoop将oracle数据导入到hive:

安装sqoop,

将oracle的jdbc驱动包放入到sqoop的lib目录下,

在hive中新建数据库myDB,

执行sqoop导入命令:

sqoop import --connect jdbc:oracle:thin:@:1521:orcl --username ABC --password abc --table TEST -m 1 --hive-import --create-hive-table --hive-database myDB --hive-table TEST

执行完毕,检查一下数据就可以了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值