CDH4版本
情况:
创建表的时候,comment说明字段包含中文,表成功创建成功之后,中文说明显示乱码
说明:
默认情况下metastore 支持数据库级别,表级别的字符集是 latin1
解决方法(修改完成后,已有乱码的表需要重建):
1. 修改metastore元数据库中指定表字段的编码为utf8
2
#修改字段注释字符集
3
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
4
#修改表注释字符集
5
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(40000) character set utf8;
6
#修改分区参数,支持分区建用中文表示
7
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(40000) character set utf8;
8
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(40000) character set utf8;
9
#修改表名注释,支持中文表示
10
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
11
#修改视图,支持视图中文
12
ALTER TABLE TBLS modify COLUMN VIEW_EXPANDED_TEXT mediumtext CHARACTER SET utf8;
13
ALTER TABLE TBLS modify COLUMN VIEW_ORIGINAL_TEXT mediumtext CHARACTER SET utf8;
2. 确认hive配置的连接参数为utf8(检查即可,一般不用修改):
<property>
2
<name>javax.jdo.option.ConnectionURL</name>
3
<value>jdbc:mysql://ip-or-fqdn:3306/dbname?useUnicode=true&characterEncoding=UTF-8</value>
4
</property>