利用sqoop从hive导入mysql的常见错误总结

Alex / 5-29 9:58 / Hive / Tag: hive

1.链接mysql数据库的时候权限错误,这属于前期扫盲错误。

Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

 

** BEGIN NESTED EXCEPTION **

java.net.ConnectException
MESSAGE: Connection refused

解决方法:http://www.lishiyu.cn/post/56.html

2.表不存在----一般为分隔符的不匹配,我们需要在sqoop导入时指定分隔符

Status : FAILED
java.io.IOException: Can’t export data, please check task tracker logs

Caused by: java.util.NoSuchElementException
at java.util.AbstractList$Itr.next(AbstractList.java:350)
at test.__loadFromFields(test.java:252)
at test.parse(test.java:201)
at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:83)

导出数据到MySQL,当然数据库表要先存在,否则会报错,此错误的原因为sqoop解析文件的字段与MySql数据库的表的字段对应不上造成的。因此需要在执行的时候给sqoop增加参数,告诉sqoop文件的分隔符,使它能够正确的解析文件字段。hive默认的字段分隔符为'\001',sqoop的默认分隔符是 ','。

3.null字段填充符需指定,没有指定null字段分隔符,导致错位。

sqoop export –connect jdbc:mysql://192.168.8.91/app_log –username root  –password 123 –table applog_1 –export-dir /user/hive/warehouse/app_log –input-fields-tminated-by '\t';

这里我们没有指定null字段的填充符

Caused by: java.lang.NumberFormatException: For input string: “665A5FFA-32C9-9463-1943-840A5FEAE193″

--input-null-string:如果没有这个选项,那么在字符串类型列中,字符串"null"会被转换成空字符串,所以最好写上这个,指定为'\\N'.

--input-null-non-string:如果没有这个选项,那么在非字符串类型的列中,空串和"null"都会被看作是null.

sqoop export –connect jdbc:mysql://192.168.8.91/app_log –username root –password 123 –table applog_1 –export-dir /user/hive/warehouse/app_log –input-fields-tminated-by '\t' –input-null-string ‘\N’ –input-null-non-string '\N' ;

4.hive中定义的表字段属性与mysql中定义的字段属性不一致,导致mysql数据库中的个别字段存不下

Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column ‘pid’ at row 1

5.日期格式问题
mysql date日期格式,hive中字符串必须是yyyy-mm-dd, 我原来使用yyyymmdd,报下面的错误。Caused by: java.lang.IllegalArgumentException
at java.sql.Date.valueOf(Date.java:138)
at cps_activation.__loadFromFields(cps_activation.java:308)
at cps_activation.parse(cps_activation.java:255)
at org.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:83)

 

 


发表留言:

Hive中的join Hive中hiverc文件的加载实现与剖析
返回顶部
Themes by lishiyu.cn