1. 程式人生 > 其它 >Hive 問題合集 持續更新

Hive 問題合集 持續更新

一 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;