Sqoop抽数到Hive表异常怎么办

小编给大家分享一下Sqoop抽数到Hive表异常怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联建站2013年至今,先为烟台等服务建站,烟台等地企业,进行企业商务咨询服务。为烟台企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

1.问题描述


使用Sqoop抽取MySQL数据到Hive表时,抽取语句正常执行但数据没有写入Hive的表中,执行的Sqoop抽数脚本如下:

export HADOOP_USER_NAME=hive
sqoop import \
--connect "jdbc:mysql://cdh02.fayson.com:3306/cm" \
--username cm \
--password password \
--table HOSTS \
--fields-terminated-by ',' \
--target-dir /user/hive/warehouse/hive_hosts \
--delete-target-dir \
--hive-import \
--hive-overwrite \
--hive-table hive_hosts \
--m 1 \
--input-null-string '\\N' \
--input-null-non-string '\\N'

(可左右滑动)

在命令行执行上述Sqoop脚本,显示作业正常执行

Sqoop抽数到Hive表异常怎么办

执行结果显示文件数和数据大小均为0,登录Hive查询生成的hive_hosts表

Sqoop抽数到Hive表异常怎么办

2.异常处理及分析


1.在Sqoop抽数的脚本中存在target-dir参数,指向的HDFS数据目录,为hive_hosts表的仓库目录,将target-dir参数去掉执行

Sqoop抽数到Hive表异常怎么办

脚本执行成功

Sqoop抽数到Hive表异常怎么办

如上脚本的日志可以看到,向HDFS写入一个数据文件,文件大小481Byte。

2.使用hive命令查看hive_hosts表,数据已正常的抽取到hive_hosts表中

Sqoop抽数到Hive表异常怎么办

target-dir参数说明及影响:

在Sqoop抽数脚本中,指定了target-dir目录Sqoop抽取的数据会写到target-dir指定的目录,在Sqoop完成数据抽取后会将target-dir目录的数据load到Hive表对应的仓库目录并删除target-dir目录及数据。因为在上述异常中我们指定的target-dir目录与Hive表的仓库目录一致,所以会导致Sqoop抽数成功,但对应的Hive表中无数据问题。

Sqoop抽数到Hive表异常怎么办

Sqoop脚本中如果不指定target-dir目录时,默认会将抽取的数据写入到/user/{username}/{db_tablename}目录下。

以上是“Sqoop抽数到Hive表异常怎么办”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!

本文题目:Sqoop抽数到Hive表异常怎么办
文章起源:https://www.cdcxhl.com/article6/gdhpig.html

成都网站建设公司_创新互联,为您提供微信小程序云服务器网站建设网站设计公司移动网站建设服务器托管

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设