Hive端建表中文注釋亂碼

2022-05-29 21:33:14 字數 1520 閱讀 9030

背景:mysql編碼是utf-8,mysql中建庫建表中文顯示都正常,但在hive視窗中建表時字段中文注釋均亂碼的問題。

問題:hive中建表後字段中文注釋顯示異常。

1. 定位 mysql 端問題

檢視 mysql字符集編碼

mysql 中新建表中文注釋顯示正常

由此可以定位到並不是 mysql 服務端的編碼問題。

2. 定位 hive 元資料問題

檢視hive庫表在mysql中的元資料資訊,發現資料庫的編碼是utf8,而庫中表的編碼是latin1,所以才會導致hive中中文顯示亂碼。

至此就能定位到了是 hive 元資料表的問題了,需要修改相關表或字段的編碼。 

3. 解決方案

將hive 原資料庫表中有關中文顯示的表或者欄位的編碼改為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;

在hive中新建表,然後檢視中文字段顯示情況,正常。

【參考資源】

[1]. hive 2.1.1欄位和表注釋中文亂碼.

問題解決 hive建表之後存在中文注釋亂碼的問題

為了後面的維護同事方便,一般都會要求同事在寫hive建表語句的時候,都需要新增相關的注釋,包括字段注釋和表注釋。而一般都是直接為中文注釋的。如下是乙個比較完整的hive建表語句 create external table test s no string comment 序號 i type int ...

CDH集群部署hive建表中文亂碼

背景 部署cdh集群的 hive 服務,選用 mysql 作為 hive 元資料的儲存資料庫,通過 hive cli 建表時發現中文注釋均亂碼。現象 hive端建表中文注釋亂碼。定位 已經確認過 mysql 庫的預設編碼是 utf 8,並且 mysql 中建庫建表不存在中文亂碼的情況。於是檢視hiv...

Hive中文注釋亂碼問題的解決

在hive中建表的時候,有時候難免要表中文注釋,然而如果不經過配置,會導致desc某個表名的時候,直接以?的方式返回。因此也來解決一下hive中文注釋亂碼的問題。由於hive的元資料是存在於mysql上的,因此需要在mysql上進行元資料的候。因此也來解決一下這個問題。當hive使用mysql作為元...