hive教程:解决 Hive 建表中文注释乱码

描述问题

建表时增加注释

在 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;amp;characterEncoding=UTF-8</value>
    </property>

第三步:重启hive


原文出处:/show_1IX3GCbo6VOK.html