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

Posted 束漌示年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于使用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快速执行模式不支持中文插入。

以上是关于关于使用sqoop export 导出hdfs数据到mysql中文乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

一个sqoop export案例中踩到的坑

sqoop常用模板案例整理

sqoop常用模板案例整理

sqoop导出到hdfs

Sqoop_具体总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入导出

Sqoop工作原理是啥?