Hive导出MySQL中文乱码问题
在处理Hive导出到MySQL时,遇到中文乱码问题。最初怀疑是Hive和MySQL建表时字符集不匹配。
针对MySQL的字符编码问题,尝试了以下方法:
1.修改MySQL的字符编码:
alter database xxx character set utf8;
alter table xxx character set utf8;
2.修改Hive的字符编码;
alter database xxx character set utf8;
alter table xxx set serdeproperties('serialization.encoding'='utf8')
然而,这些尝试都没有解决问题。
最终解决方案:
-
首先登录mysql查看字符集
show variables like 'chara%';
发现服务器的字符集不是utf8。
-
修改配置文件将mysql-server的字符集修改为utf8
vim /etc/my.cnf #在[mysqld]上面加入下面几句话 [client] default-character-set=utf8 在[mysqld]最下面加入下面几句话 default-storage-engine=INNODB character-set-server=utf8 collation-server=utf8_general_ci
-
重启MySQL
#centos6 service mysql restart #centos7 systemctl restart mysqld
-
再次查看MySQL字符集
show variables like 'chara%';
通过以上步骤,成功解决了Hive导出到MySQL中文乱码的问题。