Hive 問題合集 持續更新

一 hive建表信息中文亂碼:顯示問號等

問題現象:

主要緣由:

  1 hive元數據庫mysql 或者mariaDB 編碼格式問題mysql

  2 hive元數據定義信息編碼格式問題sql

解決方案:

對於第一種問題:修改配置文件

在/etc/my.cnf文件中
在[mysqld]標籤下添加
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

文件/etc/my.cnf.d/client.cnf
在[client]中添加
default-character-set=utf8

文件/etc/my.cnf.d/mysql-clients.cnf
在[mysql]中添加
default-character-set=utf8

所有配置完成,重啓mariadb
systemctl restart mariadb

而後進入musql,執行 SHOW VARIABLES LIKE 'character%';數據庫

 

對於第二種問題 :

一、查看存放Hive元數據信息的數據庫表字符集;是否由於字符集問題編碼

 

 很明顯,因爲表使用的是默認的latin1字符集,因此中文顯示不出來,應該使用utf8;spa

2 登錄Mysql數據庫切換到Hive元數據庫:根據具體設定自行判斷rest

修改如下兩張表便可;
use hive 

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_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8; 
相關文章
相關標籤/搜索