Hive 字段中文乱码,如执行 show create table xxx 时,表级别注释、字段级别注释发现有乱码现象(都是????), 一般都是由 hive 元数据库的配置不当造成的。 

此时可按如下步骤进行配置调整:

登录 hive 的元数据库 mysql 中:

1、设置 hive 元数据库字符集

show create database hive;

查看为 utf8,需变更为 latin1

_alter database hive character set latin1; 

2、更改如下表字段为字符集编码为 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;

  1. hive连接元数据库的jdbc url 加上useUnicode=true&characterEncoding=UTF-8 jdbc:mysql://m1.node.dev/hive_dev?useUnicode=true&characterEncoding=UTF-8