原因是Hive的元数据存储在Mysql中采用默认latin1编码。海致的开发环境出现了这个问题,解决方法如下所示。
1.进入mysql ,执行
show create database hive
查看hive 数据库当前编码,如果是utf8 则执行下面sql:
alter database hive default character set latin1
将 hive 数据库默认编码改成 latin1
2.为了以下支持hive建表时插入中文注释 需要在mysql中做如下设置:
//修改字段注释字符集
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_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
//修改索引注解
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;