關於阿里雲上Hive的一次Debug經歷

Bug

Shell層面:
shell層面報錯

日誌層面(hive的日誌默認在/tmp/{username}/hive.log)
日誌層面

webUI層面
webUI

Debug

  1. 對於日誌所報的錯誤,網上統一的解決方案如下:
    hive 部署需要注意的幾點以及Version information not found 錯誤解決辦法
    即在hive-site.xml中將hive.metastore.schema.verification中的值改爲false
    但是我的配置文件中的內容已經是fasle了。

2.後來經阿里嵩林大神幫助後,解決了該問題。而在解決該問題後,細思了一下,之所以一直困在Debug第一點是陷入了一個盲點,抱着網上解答不適用的情形,卻沒想過是否壓根配置不生效。
schematool對比

通過上圖的schematool -dbType mysql -initSchema對比,發現在上面有問題的節點上metastore connection URL是hive內置的Derby,而不是配置的MySQL,順藤摸瓜。可能是hive-site的文件沒被讀取到,也就是說hive-conf沒生效,所以看了下環境變量:
Hive環境變量
發現問題所在了,之前在部署kylin時,提示找不到HIVE_CONF的環境依賴,於是乎自己貿然將HIVE_CONF_DIR改爲了HIVE_CONF由此讀不到配置文件,然後走內置derby,不走mysql,最後拋版本找不到的異常

總結

過於依賴日誌有時會造成盲點,排查問題的時候應該多角度的去思考,既要結合日誌,也要留意一些輔助命令輸出的內容是否異樣,同時還要記住自己曾經的操作,慢慢回溯,多位一體的去Trouble Shooting!

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