描述问题
建表时增加注释
在 hive 命令下,执行下面sql:
create table t_user2(
id string COMMENT '用户id',
name string COMMENT '用户昵称id'
)
COMMENT '测试中文注释乱码';
查看表结构时,注释是乱码,执行下面命令:
desc t_user2
分析
hadoop1服务器 上的 mysql 中的 metastore 数据库,保存注释的字段,编码格式是 latin1,即:拉丁文编码,不是 utf-8,所以不支持中文,如下:
第一步:
修改 hadoop1服务器 上的 mysql 中的 metastore 数据库,保存注释的字段,将编码格式改为 utf-8,执行下面SQL:
修改字段注释乱码:
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;
第二步:
登录 hadoop1 ,修改hive配置文件
执行下面命令:
cd /program/hive-3.1.2/conf
vim hive-site.xml
内容如下:
<!-- jdbc 连接的 URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop1:3306/metastore?useSSL=false&amp;characterEncoding=UTF-8</value>
</property>
