hdfs到mysql中文乱码_关于使用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

cbf465524fbabd89b96afce3335d81e5.png

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

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

6b9b7732c63862a59ab327e51ab05629.png

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

--direct                                                   Use direct

export fast

path

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

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

原文:http://www.cnblogs.com/xulg/p/5314017.html


版权声明:本文为weixin_32824725原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。