• Hive端建表中文注释乱码


    背景:MySQL编码是utf-8,MySQL中建库建表中文显示都正常,但在Hive窗口中建表时字段中文注释均乱码的问题。

    问题:Hive中建表后字段中文注释显示异常。

    1. 定位 MySQL 端问题

    查看 MySQL 字符集编码

    MySQL 中新建表中文注释显示正常

    由此可以定位到并不是 MySQL 服务端的编码问题。

     

    2. 定位 Hive 元数据问题

    查看Hive库表在MySQL中的元数据信息,发现数据库的编码是utf8,而库中表的编码是latin1,所以才会导致hive中中文显示乱码。

    至此就能定位到了是 Hive 元数据表的问题了,需要修改相关表或字段的编码。 

     

    3. 解决方案

     Hive 原数据库表中有关中文显示的表或者字段的编码改为 utf8,问题解决。

    //修改表字段注解和表注解
    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;  

    在Hive中新建表,然后查看中文字段显示情况,正常。

     

    【参考资源】

    [1]. Hive 2.1.1字段和表注释中文乱码. 

     

  • 相关阅读:
    jquery validate自定义checkbox验证规则和样式
    【转】maven导出项目依赖的jar包
    maven web项目build失败
    【转】maven仓库快速镜像
    【转】javax.net.ssl.SSLHandshakeException(Cas导入证书)
    Maven发布web项目到tomcat
    tomcat启动是报Multiple Contexts have a path of "/XXX"
    spring无法扫描jar包的问题
    CAS单点登录之mysql数据库用户验证及常见问题
    搭建CAS单点登录服务器
  • 原文地址:https://www.cnblogs.com/lemonu/p/10398035.html
Copyright © 2020-2023  润新知