阅读 6

Hive中文注释乱码问题解决

一般来讲,中文注释乱码问题是字符集导致的。

1.进入hive元数据库,查看字符集

(1) mysql uroot -pmysql123

(2) use hive;

(3) 查看:

show variables like '%char%';
+--------------------------+-------------------------------------+
| Variable_name            | Value                               |
+--------------------------+-------------------------------------+
| character_set_client     | utf8                                |
| character_set_connection | utf8                                |
| character_set_database   | latin1                                |
| character_set_filesystem | binary                              |
| character_set_results    | utf8                                |
| character_set_server     | latin1                                |
| character_set_system     | utf8                                |
| character_sets_dir       | /opt/beh/core/mysql/share/charsets/ |
+--------------------------+-------------------------------------+

   show variables like '%colla%';
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
复制代码

2.修改字符集

(1) mysql下修改:

alter database hive default character set utf8;
ALTER DATABASE  DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE columns_v2 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE columns_v2 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
复制代码

(2) 修改配置文件/etc/my.cnf

vim /etc/my.conf

[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8
 
 
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = 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;
复制代码
关注下面的标签,发现更多相似文章
评论