解决Hive元数据中文乱码

Hive已MySQL作为数据库,我们发现在Hive在执行COMMENT带有中文的建表语句后,执行show create table会出现中文乱码。

使用hive用户登录元数据库,使用hive数据库。

查看存放Hive元数据信息的数据库表字符集

show create table column_v2\G;

可以看到,表使用的是默认的latin1字符集,所以中文显示不出来,应该使用utf8;

查看MySQL字符设置

show variables like "%char%";

可以看出MySQL的默认字符集都是utf8,所以与Mysql的配置无直接关系

修改元数据表的字符编码

alter table CLOUMNS_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_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8; 
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
slter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

修改hive-site.xml

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://metastore_ip/hive?useUnicode=true&characterEncoding=UTF-8</value>
</property>

现在建表语句中带有中文不会出现乱码的情况,原来的表还是处于乱码状态。

results matching ""

    No results matching ""