背景: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() character set utf8;
alter table TABLE_PARAMS modify column PARAM_VALUE varchar() character set utf8;
//修改分区字段注解
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar() character set utf8;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar() character set utf8;
//修改索引注解
alter table INDEX_PARAMS modify column PARAM_VALUE varchar() character set utf8;  

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

【参考资源】

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





hive端建表中文注释乱码的更多相关文章

  1. CDH集群部署hive建表中文乱码

    背景:部署CDH集群的 hive 服务,选用 mysql 作为 hive 元数据的存储数据库,通过 hive cli 建表时发现中文注释均乱码. 现象:hive端建表中文注释乱码. 定位: 已经确认过 ...

  2. Hive中文注释乱码解决方案(2)

    本文来自网易云社区 作者:王潘安 执行阶段 launchTask    回到Driver类的runInternal方法,看以下执行过程.在runInternal方法中,执行过程调用了execute方法 ...

  3. 【原创】大叔经验分享(34)hive中文注释乱码

    在hive中查看表结构时中文注释乱码,分为两种情况,一种是desc $table,一种是show create table $table 1 数据库字符集 检查 mysql> show vari ...

  4. myeclipse10中文注释乱码问题

    将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码格式不同. 总结网上的建议和自己的体 ...

  5. Eclipse中文注释乱码解决

    将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码格式不同. 总结网上的建议和自己的体 ...

  6. MyEclipse中文注释乱码解决

    MyEclipse中文注释乱码解决 将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码 ...

  7. Source Insight中文注释乱码、字体大小、等宽解决方法

    中文注释乱码解决方法: 用记事本打开源文件,然后,选择文件->另存为,编码选为”ANSI“   字体的调整: Source Insight 菜单栏选择Options->Document O ...

  8. ubuntu16.04matlab中文注释乱码的解决办法

    中文注释乱码的原因是windows下的m文件采用的是gb2312编码,只要将所有的m文件转成 utf8文件,显示就正常了. 1.首先安装enca:sudo apt-get install enca 2 ...

  9. Linux for Matlab中文注释乱码(亲测有效)

    中文注释乱码的原因是windows下的m文件采用的是gb2312编码,只要将所有的m文件转成 utf8文件,显示就正常了. 1.首先安装enca:sudo apt-get install enca 2 ...

随机推荐

  1. 移动端meta常用的设置

    1.qq强制横屏或者竖屏显示    :   <meta name="x5-orientation" content="portrait ||andscape&quo ...

  2. 浅谈IT人的发展(转载)

    一个人如果能确定他喜欢的行业,他一生都会非常幸福. 相反,则往往痛苦,也许竟然会因此成为一个哲学家也说不定. 中国的贫穷决定了我们当中的大多数人不能根据自己的爱好来选择职业,而只是因为生活所迫,或者世 ...

  3. MYSQL安全模式SQL语法需要注意的地方

    MYSQL安全模式 Mysql版本: 背景: 为了避免在执行delete.update将全表数据清空或者覆盖修改,在新项目营销云中开启了mysql的安全模式. 安全模式要求不能对非主键的条件查询做up ...

  4. git diff 检查更新

    git diff 检查更新 git fetch #需要先 fetch git diff master..origin/master --name-only -- [path] #path:指定检查 可 ...

  5. 前端自动化构建工具 Webpack—— 2 webpack最基本的使用方式

    Webpack可以做什么事情? 1.webpack能够处理JS文件的互相依赖关系: 2.webpacck能够处理JS的兼容问题,把高级的.浏览器不识别的语法,转为 低级的,浏览器能正常识别的语法 we ...

  6. Filter和interceptor比较

    作为一个备忘,有时间补充 https://www.cnblogs.com/learnhow/p/5694876.html 先说一个题外话,Filter是过滤器,interceptor是拦截器.前者基于 ...

  7. Bootstrap-轮播图-No.1

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  8. @Test 测试

    package com.自定义.mall.admin.system; import java.util.List; import java.util.Map; import javax.annotat ...

  9. 「CF712E」Memory and Casinos「线段树」「概率」

    题解 解法1:(官方做法) 一段区间的\(L\)定义为从最左边开始出发,最左不失败,一直到最右边胜利的概率,\(R\)定义为从最右边开始出发,最左不失败,又回到最右边胜利的概率 考虑一个区间\([l, ...

  10. python定时任务-sched模块

    通过sched模块可以实现通过自定义时间,自定义函数,自定义优先级来执行函数. schedule = sched.scheduler( time.time,time.sleep) schedule是一 ...