解决hive注释中文乱码

1.修改hive-site.xml

<property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://bigdata-computing-02-019:3306/hive?createDatabaseIfNotExsit=true;characterEncoding=UTF-8</value>
</property>

2.解决desc命令注释中文乱码

修改hive存储在mysql里的元数据相关信息
1).修改字段注释字符集

alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;

2).修改表注释字符集

alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

3).修改分区表参数,以支持分区键能够用中文表示

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;

4).修改索引注解

alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

3.解决show create table命令注释中文乱码

修改hive的 org.apache.hadoop.hive.ql.exec.DDLTask类,在这个中将

outStream.writeBytes(createTab_stmt.toString());

改成

outStream.write(createTab_stmt.toString().getBytes("UTF-8"));

outStream.writeBytes(createTab_stmt.render());

改成

outStream.write(createTab_stmt.render().getBytes("UTF-8"));

编译成功后,替换原来的hive-exec-2.1.1.jar

参考
https://issues.apache.org/jira/browse/HIVE-11837
https://issues.apache.org/jira/secure/attachment/12791019/HIVE-11837.1.patch

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值