Hive 問題合集 持續更新
阿新 • • 發佈:2021-08-11
一 hive建表資訊中文亂碼:顯示問號等
問題現象:
主要原因:
1 hive元資料庫mysql 或者mariaDB 編碼格式問題
2 hive元資料定義資訊編碼格式問題
解決方案:
對於第一種問題:修改配置檔案
在/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%';
對於第二種問題 :
1、檢視存放Hive元資料資訊的資料庫表字符集;是否因為字符集問題
很明顯,由於表使用的是預設的latin1字符集,所以中文顯示不出來,應該使用utf8;
2登陸Mysql資料庫切換到Hive元資料庫:根據具體設定自行判斷
修改以下兩張表即可; 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;