hive中文乱码问题

来源:互联网 发布:激光内雕机软件 编辑:程序博客网 时间:2024/05/10 22:30

hive

修改hive支持中文(针对mysql存储元数据,其他类型数据库同理)

针对元数据库metastore中的表,做相关字段的设置

因为我们知道 metastore 支持数据库级别,表级别的字符集是 latin1,那么我们只需要把相应注释的地方的字符集由 latin1 改成 utf-8,就可以了。用到注释的就三个地方,表、分区、视图,location,如下修改分为两个步骤:

(1)进入数据库 Metastore 中执行以下 6 条 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_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 INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

修改中文路径location
alter table SDS modify column LOCATION varchar(4000) character set utf8;

(2)、修改 metastore 的连接 URL


javax.jdo.option.ConnectionURL
jdbc:mysql://IP:3306/db_name?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8
JDBC connect string for a JDBC metastore

原创粉丝点击