前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >解决hive中文乱码

解决hive中文乱码

作者头像
chimchim
发布2022-11-13 12:59:16
发布2022-11-13 12:59:16
1.1K0
举报

问题: 建表时发现hive建表语句有中文乱码的现象

定位: hive的元数据都是存储在mysql上维护的。 可以修改hive元数据的字符集为utf-8.

解决方案: 1.修改hive-site.xml配置文件的参数内容 set jdbc:mysql://crxy99:3306/hive_cz3q?createDatabaseIfNotExist=true; 注意:hive的元数据metastore在mysql的数据库,不管是数据库本身,还是里面的表编码都必须是latin1(CHARACTER SET latin1 COLLATE latin1_bin) 2.修改mysql 配置文件/etc/my.cnf 离线时: [client]下面增加 default-character-set=utf8 在[mysqld]下面增加 default-character-set=utf8 init_connect=‘SET NAMES utf8’ –重启mysql service mysqld restart 在线时: init_connect=‘SET collation_connection = utf8_unicode_ci’ init_connect=‘SET NAMES utf8’ character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake –重启mysql service mysqld restart –验证编码是否修改 show variables like ‘char%’;

3.进入数据库 Metastore 中执行以下 5 条 SQL 语句 修改表字段注解和表注解 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; 4.修改 metastore 的连接 URL javax.jdo.option.ConnectionURL jdbc:mysql://IP:3306/db_name?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8 JDBC connect string for a JDBC metastore

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档