《Sqoop将Oracle数据导入至Hive中界面无错却依旧没有数据导入》

5 篇文章 0 订阅
3 篇文章 0 订阅

一、生产环境

Oracle:11g R2版本

Sqoop:1.4.6版本

Hive:1.1.1版本(利用MySQL作为MetaStore)

Hadoop:2.6.3版本

(其中Sqoop、Hive、Hadoop均是搭建在Centos6.6 64位上的)

远程登录软件:Xshell 5


二、需求

需要将Oracle中的多张表通过Sqoop导入至Hive中,Oracle在远程服务器上,表中记录大小不一,少则几十条,多则10几万条。


三、问题描述

通过Sqoop导入时,界面并没有显示错误,甚至还可以看见所导入表的记录数,然而导入完毕,登录Hive查看时,并没有数据存在。

①貌似正常的导入界面:


②然并卵的登录Hive查看:


四、Sqool导入语句:


参数说明

--hive-import(导入Hive必备);
--connect jdbc:oracle:thin:@192.168.55.5:1521:fndb(是从Oracle导入,连接远程Oracle,远程Oracle在192.168.55.5上,默认端口1521,服务名fndb);
-username NEWOAUAT --password newoauat(数据库用户名,密码,--username也行);
--table APPROVALHISTORY(你要从Oracle导入的表);
--hive-database weishu(你要导入至Hive中的数据库名);
--hive-table APPROVALHISTORY(你要导入至Hive中的表名);
--verbose(控制台看到加载情况)
-m 1(用一个map)

注意事项

username大写,密码小写,笔者环境下两者都小写不报错也不显示内容,两者都大写连不上,并不需要网上文档所说的--hive-create-table参数,通过--hive-table 指定一个表名(无需新建)即可。


五、排查思路

一开始我以为出现这种数据导不进去的情况是Sqoop版本的问题,所以换了1.4.4版本,然并卵。后来觉得可能是节点分配的问题,三台节点构成的hadoop集群,所以重新配置了下,将yarn和active namenode分离,以防止过多的计算集中在一台主机,导致资源不够用的情况,然并卵。由于,将数据从Oracle导入至Hive是为了用Kylin做OLAP的。而之前,Kylin那边的环境可以正常运行,所以就没有怀疑它的依赖,然而。。。终极解决办法,看日志。Hive-1.1.1的日志默认在/tmp/{username}/hive.log,我的Hive用户是root所以,我需要查看/tmp/root/hive.log来排查错误。


Hive.log信息如下:

笔者通过上网查找资料,第1、2个报错似乎并没有切中要害,然而,转机就在第三个。

小象问答:使用sqoop从mysql导入数据到Hive报错

Hive社区对Hive-1.1.1版本的错误说明

重新下载的Hive-1.2.1版本


六、解决问题

①重新导入过程界面


②登录Hive查看

至此,问题得到解决。


七、反思总结

在排查的时候,排查思路和顺序还存在问题,对于这种有日志的情况,理应先查看日志,再做基于经验和猜测上的判断,不然会浪费很多的时间哈。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司小幽

真诚赞赏,手留余香。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值