動態調整Impala日誌級別

Impala日誌級別

診斷線上事故時,動態調整日誌級別非常有用,Impala的各個server也提供這樣的能力。每個server都有一個/log_level頁面,如圖:

Impala log_level pageImpala的FE代碼中主要用了FATAL、INFO、TRACE三種日誌級別,很少用DEBUG。因此實戰時一般是把日誌級別調成TRACE,另外由於不確定是哪個類出問題,最好把整個 org.apache.impala 包的日誌級別都調成 TRACE。點 "Set Java Log Level" 按鈕實時生效,不需要重啓server。事後如果不需要重啓server,記得點 “Reset Java Log Levels" 按鈕來恢復。

另外對於BE部分的邏輯,也可以對應地設置glog的日誌級別。glog這塊主要有0、1、2、3 四個級別,粒度如下:

  • 0: 只打開FATAL和ERROR級別的日誌
  • 1: 打開查詢級別、連接級別的日誌,即每個查詢、每個連接都有的日誌,主要對應代碼中用 VLOG_QUERY、VLOG_CONNECTION 等打印的日誌
  • 2: 打開RPC級別、文件級別的日誌,即每個RPC調用、每個文件的處理都有的日誌,主要對應代碼中用 VLOG_RPC、VLOG_FILE、VLOG_PROGRESS 打印的日誌
  • 3: 打開行級別日誌,相當於每行的處理都會有日誌,主要對應代碼中用 VLOG_ROW 打印的日誌

BE的日誌級別默認是1,調整BE的日誌級別要慎重,因爲日誌量很大,查詢多的話很快就能把日誌刷滿。

Impala日誌格式

下面介紹Impala日誌的格式,下圖是一個示例:

Impala Log Example

每行日誌最開始的 "I0321" 部分表示日誌級別以及月份和日期,這裏是 INFO 級別、3月21日的意思。接下來的 "01:35:49.863798" 是時間戳,精確到微秒 (us)。再接下來是線程id、源碼文件名+行號,如果有查詢id的話還會附上,後面纔跟日誌信息。

每個查詢的編譯都由一個線程單獨完成的,上圖中線程 27193 就負責了一個查詢的編譯。

官方資料

其它關於Impala日誌的信息在官方文檔裏都有,如日誌文件的位置、文件名的格式、日誌的rotation配置等:

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