hive解决注释乱码,现在有些厂用mysql8版本了,需要做一些调整

hive修改字符编码

注意项1:如果你的一些注释已经写入进去了,并且呈现出来的就是乱码了,而且按照我的方法没有效果,建议重新加一遍注释,因为有的时候可能不奏效。

注意项2:如果是mysql8的用户,需要注意一下msyql8用的编码是utf8还是utf8mb4,一定要检查好了,再去修改。utf8mb4的generic_ci 这类型的是可以和utf8做兼容的,如果不是,各位要查清楚mysql的各个表的编码是否都是一样的。

Hive元数据库的字符集默认为Latin1,由于其不支持中文字符,故若建表语句中包含中文注释,会出现乱码现象。
如需解决乱码问题,须做以下修改。

1)修改Hive元数据库中存储注释的字段的字符集为utf-8(如果mysql表是utf8mb4,建议调整)

如果mysql版本升级,并且表类型是utf8mb4的general_ci,这种的理论可以兼容utf8的编码,不过建议各位用8版本了,就最好遵循8版本的一些规则。

登录mysql 

mysql -uroot -p

use metastore;

(1)字段注释


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

(2)表注释


alter table TABLE_PARAMS modify column PARAM_VALUE mediumtext character set utf8;

2)修改hive中的hive-site.xml中JDBC URL,如下

添加
&useUnicode=true&characterEncoding=UTF-8

    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
    </property>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值