尋找spark executor日志

本文將介紹spark on yarn模式下,怎樣找到executor的日志。運行環(huán)境是基于HDP2.6.0.3-8版本。

引言

spark on yarn應用在運行時和完成后日志的存放位置是不同的,一般運行時是存放在各個運行節(jié)點,完成后會歸集到hdfs。無論哪種情況,都可以通過spark的頁面跳轉找到executor的日志,但是在大多數(shù)的生產環(huán)境中,對端口的開放是有嚴格的限制,也就是說根本無法正常跳轉到日志頁面進行查看的,這種情況下,就需要通過后臺查詢。

運行時

spark on yarn模式下一個executor對應yarn的一個container,所以在executor的節(jié)點運行ps -ef|grep spark.yarn.app.container.log.dir,如果這個節(jié)點上可能運行多個application,那么再通過application id進一步過濾。上面的命令會查到executor的進程信息,并且包含了日志路徑,例如

 -Djava.io.tmpdir=/data1/hadoop/yarn/local/usercache/ocdp/appcache/application_1521424748238_0051/container_e07_1521424748238_0051_01_000002/tmp '
-Dspark.history.ui.port=18080' '-Dspark.driver.port=59555' 
-Dspark.yarn.app.container.log.dir=/data1/hadoop/yarn/log/application_1521424748238_0051/container_e07_1521424748238_0051_01_000002 

也就是說這個executor的日志就在/data1/hadoop/yarn/log/application_1521424748238_0051/container_e07_1521424748238_0051_01_000002目錄里。至此,我們就找到了運行時的executor日志。

完成后

當這個application正?;蛘哂捎谀撤N原因異常結束后,yarn默認會將所有日志歸集到hdfs上,所以yarn也提供了一個查詢已結束application日志的方法,即
yarn logs -applicationId application_1521424748238_0057,結果里面會包含所有executor的日志,可能會比較多,建議將結果重定向到一個文件再詳細查看。

總結

無論對于spark應用程序的開發(fā)者還是運維人員,日志對于排查問題是至關重要的,所以本文介紹了找到日志的方法。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容