Hive表comment中文乱码???

946 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Hive注释中文乱码问题:在这里插入图片描述

解决说明:

1、进入hive的元数据库中修改相应的编码配置,我使用的元数据库是MySQL。 mysql中每个数据库、每个表、每个字段都有自己的编码,默认编码为latin1_bin,我们需要将一些字段的编码改为utf8。 查看mysql中字段的编码:show full columns from tableName; 2、配置Hive Metastore Database JDBC URL的连接。

解决步骤:

进入hive的元数据库执行,修改下列内容的字符集!

1、修改表字段注解和表注解:
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 ;
2、修改分区字段注解:
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;
3、修改索引注解:
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
4、修改数据库注解:
alter table DBS modify column `DESC` varchar(4000) character set utf8 ;
5、修改metastore的连接url:

修改hive-site.xml

<property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://你的IP:3306/hive?createDatabaseIfNotExsit=true&amp;characterEncoding=UTF-8</value>
</property>
6、查看修改结果
desc [table];
show create table [table]];

需要额外说明一下,如果是在CDH里修改hive-site.xml,jdbc需要注意(去掉amp;):

在这里插入图片描述

<property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://你的IP:3306/你的数据库?createDatabaseIfNotExsit=true&characterEncoding=UTF-8</value>
</property>