关于使用sqoop export 导出hdfs数据到mysql中文乱码问题

 前几天使用sqoop将hdfs的数据导入mysql中,发现中文导进去后会乱码,我的执行命令是:

sqoop export  --connect "jdbc:mysql://10.19.157.*****?useUnicode=true&characterEncoding=utf-8" --table msg_rule_copy --username root --password root*** --export-dir $path --hadoop-home $home --direct

刚开始以为是mysql编码没有设置好的问题,后面发现mysql是没问题的,都是uft-8

然后用sqoop 测试一下sql语句插入,发现也是没问题的。

 sqoop eval --connect "jdbc:mysql://10.19.*****"  --username root --p --query "insert into msg_rule_copy(module,levelId) values('中文','90');"

 

jdbc执行sql语句没问题,我就想,除非sqoop他不是用jdbc来插入数据的,后面突然想起一个快速执行的参数:

--direct                                                   Use direct
                                                              export fast
                                                              path

我把这个参数去掉,果然好了。

结论:--direct快速执行模式不支持中文插入。

posted on 2016-03-24 08:52  束漌示年  阅读(1018)  评论(0编辑  收藏  举报