解決hive中文亂碼

  在hive中創建表,加上COMMENT後面的中文註釋;此時如果直接desc formatted tableName會發現,註釋的內容是一串問號。這是因爲hive初始化安裝後,在mysql裏面創建的庫和表都是以latin1存儲的。

  此時如果直接在/etc/my.cnf下配置mysql的默認編碼爲utf-8,會發現進入hive命令行後,create database,drop database等操作都會報錯誤。

  正確的解決辦法應該是現在mysql中執行以下命令:

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命令行,刪除之前的庫和表,然後重新創建就ok了。需要注意的是hive安裝目錄下的conf/hive-site.xml配置與mysql連接的jdbc時必須在後面加上參數&characterEncoding=UTF-8,本人就是忘記加了這個,其他的都改成了utf-8還是不行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章