Hive 統計信息簡析

Hive統計信息是在0.7引入的(https://issues.apache.org/jira/browse/HIVE-33),對於Insert/Load/MergeDDL操作時在Task後加入一個StatsTask進行統計信息收集,並訂閱前置OperatorFileSink/TableScan)的feed.不過現在這個stats並沒有使用起來.

線上雖然開啓了hive.stats.autogather=true想蒐集一些信息,但是ETL Job經常報:[Warning] could notupdate stats,查看日誌發現:

ERRORjdbc.JDBCStatsPublisher (JDBCStatsPublisher.java:init(281)) - Error during JDBCinitialization.

java.sql.SQLException:The connection property 'createDatabaseIfNotExist' only accepts values of theform: 'true', 'false', 'yes' or 'no'. The value 'true;user=xxx;password=xxx' isnot in this set.

原來是連接字符串的配置問題,在xml&需要寫成&纔可以,修改後生效,可以更新:[num_partitions: xxx, num_files: xxx,num_rows: 0, total_size: xxx, raw_data_size: 0]XXX的幾個變量,但是發現num_rows/raw_data_size這兩個值無論如何都無法更新,analyze命令也不管用,看下issuehttps://issues.apache.org/jira/browse/HIVE-3324確實有這麼個bug,不過並沒有很合理的解釋,anyway,在hive0.13後使用hadoop counter來做stat publish了,就沒這個問題了.

其實如果用來做smallfile分析有這些信息也夠了:P


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