前言
- Hive:2.3.0
- Hadoop:2.7.7
- MySQL Server:5.7.10
- OS:CentOS 7
- 本文主要演示如何解决Hive注释内容(即COMMENT)中出现中文乱码的问题
原因
Hive中的表字段等注释信息都存储在元数据库metastore中(本文中的元数据存储在MySQL的hive_db数据库中),当使用desc命令查看表字段的注释信息时,Hive会直接读取元数据库中的hive_db.COLUMNS_V2表,同样的修改元数据库中此表中的内容会直接反馈到desc的查询结果中。故,之所以desc查询结果中显示中文乱码,是因为元数据库中对应表中的元数据字符集无法显示中文(默认为latin1),因此本文主要是通过修改元数据库中的字符集来解决中文乱码的问题。
解决步骤
1)连接存储元数据的数据库(此处为MySQL中的hive_db),执行下列SQL语句
-- 注意选择对应的元数据存储数据库
use hive_db;
-- 修改表字段注释字符集
ALTER TABLE COLUMNS_V2 MODIFY COLUMN `COMMENT` varchar(256) CHARACTER SET utf8;
-- 修改表字段名字符集
ALTER TABLE COLUMNS_V2 MODIFY COLUMN `COLUMN_NAME` varchar(767) CHARACTER SET utf8

最低0.47元/天 解锁文章
6165

被折叠的 条评论
为什么被折叠?



