Hive中的日志分為兩種
1. 系統日志,記錄了hive的運行情況,錯誤狀況。
2. Job 日志,記錄了Hive 中job的執行的歷史過程。
1.系統日志
系統日志存儲在什么地方呢 ?
在hive/conf/ hive-log4j.properties 文件中記錄了Hive日志的存儲情況,
默認的存儲情況:
hive.root.logger=WARN,DRFA
hive.log.dir=/tmp/${user.name} # 默認的存儲位置
hive.log.file=hive.log # 默認的文件名
2.job日志
Job日志又存儲在什么地方呢 ?
//Location of Hive run time structured log file
HIVEHISTORYFILELOC("hive.querylog.location", "/tmp/" + System.getProperty("user.name")),
默認存儲與 /tmp/{user.name}目錄下。
在默認的日志級別情況下,是不能將DEBUG信息輸出的,這樣一來出現的各種詳細的錯誤信息都看不到。
我們可以通過以下兩種方式修改log4j輸出的日志級別,從而利用這些調試日志進行錯誤定位,具體做法如下:
$ hive --hiveconf hive.root.logger=DEBUG,console (hive啟動時用該命令替代)
或者在${HIVE_HOME}/conf/hive-log4j.properties文件中找到hive.root.logger屬性,並將其修改為下面的設置
hive.root.logger=DEBUG,console