簡體   English   中英

YARN執行程序日志上的Spark流不可用

[英]Spark streaming on YARN executor's logs not available

我正在運行以下代碼

.map{x => 
    Logger.fatal("Hello World")
    x._2
 }

它的火花流應用程序在YARN上運行。 我更新了log4j並提供了spark-submit(使用--files)。 我的Log4j配置已加載,可以從日志中看到並應用於驅動程序的日志(我只能看到我的日志級別,也可以看到我的模式在日志中),但是執行者的日志不可用。 我在日志中找不到“ Hello Word”。 另外,我檢查了$ {yarn.nodemanager.log-dirs},它是空的,看起來很奇怪。 我的日志在哪里?

先感謝您

根據Spark官方文檔( link ), YARN有兩種管理日志的方式:

  • 如果yarn.log-aggregation-enable config日志聚合(使用yarn.log-aggregation-enable config ):

容器日志將從本地計算機(執行程序)中刪除,並復制到HDFS目錄中。 可以使用yarn logs命令以下列方式從群集上的任何位置查看這些日志:

yarn logs -applicationId <app ID>
  • 如果日志聚合打開:

日志在YARN_APP_LOGS_DIR下的每台計算機上本地維護,通常根據Hadoop版本和安裝情況將其配置為/tmp/logs$HADOOP_HOME/logs/userlogs 根據文檔,查看容器的日志要求轉到包含它們的主機並在此目錄中查找。

我找到了解決方案,必須在提交應用程序時以以下方式設置正確的log4j配置:

--files /opt/spark/conf/log4j.properties
--conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=log4j.properties"
--conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=log4j.properties"

哪里

spark.driver.extraJavaOptions   -> sets up log configuration for driver
spark.executor.extraJavaOptions -> sets up log configuration for executor(s)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM