Hive字符集問題

創建表失敗

  • hive創建表失敗,報錯
    FAILED: Execution Error,
    return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
    MetaException(message:For direct MetaStore DB
    connections, we don’t support retries at the client
    level.)

錯誤信息很不明確,解決思路:

  • 找日誌
    日誌目錄:$HIVE_HOME/conf/hive-log4j.properties.template
    日誌目錄配置是由

            1. hive.log.dir=${java.io.tmpdir}/${user.name}
    

    配置

  • 查看日誌
    ERROR [main]: Datastore.Schema (Log4JLogger.java:error(115)) - An exception was thrown while adding/validating class(es) :
    Specified key was too long; max key length is 767 bytes
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
    這個錯誤是字符集問題

*解決方法
更改hive元數據庫字符類型
alter database basic01 character set latin1;
use basic01;
alter table PARTITIONS convert to character set latin1;
alter table PARTITION_KEYS convert to character set latin1;

來自@若澤大數據

發佈了44 篇原創文章 · 獲贊 30 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章