您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何理解Yarn的日志聚合,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
1、Yarn日志聚合
Yarn中的任務執行完成后,再想查看歷史日志一般都查不到了,因為這時候運行任務的Container已經釋放了,這種情況我們可以開啟Yarn的日志聚合功能。
首先配置yarn-site.xml
<!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 配置YARN日志聚集功能 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> <!-- 配置YARN日志聚集目錄,默認/tmp/logs --> <property> <name>yarn.nodemanager.remote-app-log-dirs</name> <value>/tmp/logs</value> </property> <property> <name>yarn.log.server.url</name> <value>http://localhost:19888/jobhistory/job/</value> </property>
然后啟動history-server,RM,NM
start-yarn.cmd,sbin\mr-jobhistory-daemon.sh start historyserver
提交mapreduce作業到Yarn等執行完成后看看歷史日志服務器能否看到。
提示:最好在linux上安裝,我在windows下啟動historyServer失敗了。
【yarn日志參數】
yarn.log-aggregation-enable true 執行結束后收集各個container本地的日志 yarn.log-aggregation.retain-seconds 2592000 收集的日志的保留時間,以秒為單位,到時后被刪除,保留30天后刪除 yarn.log.server.url http://hostname:19888/jobhistory/logs log server的地址yarn.nodemanager.local-dirs /hadoop/yarn/local 存放application執行本地文件的根目錄,執行完畢后刪除,按用戶名存儲 yarn.nodemanager.log-dirs /hadoop/yarn/log 存放application本地執行日志的根目錄,執行完畢后刪除,按用戶名存儲 yarn.nodemanager.log.retain-second 604800 日志的保留時間,log aggregation沒有enable時,有效 yarn.nodemanager.remote-app-log-dir /app-logs 聚合日志后在hdfs的存放地址 yarn.nodemanager.remote-app-log-dir-suffix logs 集合日志后的存放地址由 ${remote-app-log-dir}/${user}/{thisParam}構成 yarn.nodemanager.delete.debug-delay-sec 600 application執行結束后延遲10min刪除本地文件及日志
2、Spark On Yarn日志
Spark本身也有日志聚合功能(日志聚合是為了程序運行完成之后還能看到日志,否則只有在運行過程中才能看日志,因為運行完之后executor就釋放了)
配置Spark日志聚合,在spark-defaults.conf中設置:
spark.eventLog.enable=true
spark.eventLog.dir = hdfs:///spark-history/logs
然后啟動spark historyServer就可以在默認端口18080上看到spark的歷史聚合日志了。
當在Yarn上提交spark的時候,Yarn的8088端口上進入任務的History鏈接,默認是到Yarn的historyServer的端口19888的,不會自動跳轉到Spark的18080端口。
如果要自動跳轉到Spark的historyServer 18080端口,需要在spark-defaults.conf中添加配置:
spark.yarn.historyServer.address=http://spark-history:18080
添加SPARK_HISTORY_OPTS參數
# vi spark-env.sh
#!/usr/bin/env bash
export SCALA_HOME=/root/learnproject/app/scala
export JAVA_HOME=/usr/java/jdk1.8.0_111
export HADOOP_CONF_DIR=/root/learnproject/app/hadoop/etc/hadoop
export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://mycluster/spark/historylog \
-Dspark.history.ui.port=18080 \
-Dspark.history.retainedApplications=20"
然后就可以了。
以上就是如何理解Yarn的日志聚合,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。