打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Hive学习之路 (八)Hive中文乱码

目录

  • Hive注释中文乱码
    • 针对元数据库metastore中的表,分区,视图的编码设置
    • 1、进入数据库 Metastore 中执行以下 5 条 SQL 语句
    • 2、修改 metastore 的连接 URL
  • 验证

 

正文

回到顶部

Hive注释中文乱码

创建表的时候,comment说明字段包含中文,表成功创建成功之后,中文说明显示乱码

create external table movie(
userID int comment '用户ID',
movieID int comment '电影ID',
rating int comment '电影评分',
timestamped bigint comment '评分时间戳',
movieName string comment '电影名字', 
movieType string comment '电影类型', 
sex string comment '性别', 
age int comment '年龄', 
occupation string comment '职业', 
zipcode string comment '邮政编码'
) comment '影评三表合一' 
row format delimited fields terminated by ","
location '/hive/movie';

 

这是因为在MySQL中的元数据出现乱码

针对元数据库metastore中的表,分区,视图的编码设置

因为我们知道 metastore 支持数据库级别,表级别的字符集是 latin1

那么我们只需要把相应注释的地方的字符集由 latin1 改成 utf-8,就可以了。用到注释的就三个地方,表、分区、视图。如下修改分为两个步骤:

1、进入数据库 Metastore 中执行以下 5 条 SQL 语句

(1)修改表字段注解和表注解

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;

(2)修改分区字段注解

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;

(3)修改索引注解

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

2、修改 metastore 的连接 URL

 修改hive-site.xml配置文件

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://IP:3306/db_name?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8</value>
    <description>JDBC connect string for a JDBC metastore</description>
</property>
回到顶部

验证

做完可以解决乱码问题

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
hive元数据中utf8的修改
java中文乱码解决总结
彻底解决 Tomcat 5 下文字乱码问题 - 天空 - BlogJava
C# 读写文本文件乱码解决方案
HttpWebRequest 返回JSON中文乱码问题
java乱码总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服