CDH集群部署hive建表中文乱码

背景:部署CDH集群的 hive 服务,选用 mysql 作为 hive 元数据的存储数据库,通过 hive cli 建表时发现中文注释均乱码。

现象:hive端建表中文注释乱码。

定位:

已经确认过 mysql 库的默认编码是 utf-8,并且 mysql 中建库建表不存在中文乱码的情况。

于是查看hive库表的编码,分别通过如下方式查看hive库和随机某个表的编码,发现hive表的编码是 lantin1,问题也就出在这里。

查看hive库编码:

查看hive表编码:

解决方法:

将hive表中所有关于注释的编码有 lantin1 修改为 utf-8。

alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_PARAMS  modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_KEYS  modify column PKEY_COMMENT varchar(4000) character set utf8;
alter table  INDEX_PARAMS  modify column PARAM_VALUE  varchar(4000) character set utf8;

至此,hive 端建表中文注释乱码问题已解决。

【参考资料】

[1]. https://my.oschina.net/jackieyeah/blog/742088.

猜你喜欢

转载自www.cnblogs.com/walker-/p/11235410.html