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

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

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

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

定位:

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

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

查看hive库编码:

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

查看hive表编码:

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

解决方法:

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

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

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

【参考资料】

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

上一篇:WinForm用户自定义控件,在主窗体加载时出现闪烁;调用用户控件出现闪烁,需要鼠标才能够显示


下一篇:C++通过GetAdapatersInfo获取网卡配置信息