Hive端建表中文注释乱码

背景:MySQL编码是utf-8,MySQL中建库建表中文显示都正常,但在Hive窗口中建表时字段中文注释均乱码的问题。

问题:Hive中建表后字段中文注释显示异常。

1. 定位 MySQL 端问题

查看 MySQL 字符集编码

MySQL 中新建表中文注释显示正常

由此可以定位到并不是 MySQL 服务端的编码问题。

 

2. 定位 Hive 元数据问题

查看Hive库表在MySQL中的元数据信息,发现数据库的编码是utf8,而库中表的编码是latin1,所以才会导致hive中中文显示乱码。

至此就能定位到了是 Hive 元数据表的问题了,需要修改相关表或字段的编码。 

 

3. 解决方案

 Hive 原数据库表中有关中文显示的表或者字段的编码改为 utf8,问题解决。

//修改表字段注解和表注解
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]. Hive 2.1.1字段和表注释中文乱码. 

 

原文地址:https://www.cnblogs.com/lemonu/p/10398035.html