Hive中的日志分為兩種
1. 系統日志,記錄了hive的運行情況,錯誤狀況。
2. Job 日志,記錄了Hive 中job的執行的歷史過程。
日志查看方法
1,在本地運行機器上
hive日志存儲位置在本機上,不是hadoop上:
在hive/conf/ hive-log4j.properties 文件中記錄,
該文件如果沒有,就是使用默認,默認的存儲情況:
hive.root.logger=WARN,DRFA
hive.log.dir=/tmp/${user.name} # 默認的存儲位置
hive.log.file=hive.log # 默認的文件名
Job日志存儲在:
//Location of Hive run time structured log file
HIVEHISTORYFILELOC(“hive.querylog.location”, “/tmp/” + System.getProperty(“user.name”)),
默認存儲在本機 /tmp/{user.name}目錄下。
2 在雲上jobtrackweb頁面上查看
hadoop的50030/jobtracker.jsp上根據任務id,查詢job日志,在map或者reduce節點中,點擊對應的all查看系統日志。
日志有
stdout logs
stderr logs
syslog logs
三種。
確定map還是reduce節點,主要看任務執行狀態,killed和failed是節點看all的內容。
一般代碼問題會在map階段的節點,直接報錯
hive執行報錯
Failed with exception Unable to move sourcehdfs://namenode/tmp/hive-pmp_bi/
日志中顯示 訪問權限,當前用戶無法訪問對應的hive表,沒有權限,訪問另一個用戶的操作表。所以需要為用戶添加表權限