Logging 纱线执行器上的火花流&x27;s日志不可用

Logging 纱线执行器上的火花流&x27;s日志不可用,logging,apache-spark,yarn,spark-streaming,Logging,Apache Spark,Yarn,Spark Streaming,我正在运行以下代码 .map{x => Logger.fatal("Hello World") x._2 } 这是火花流应用在纱线上运行。我升级了log4j并提供了spark submit(使用--files)。我的Log4j配置是从日志中加载的,并应用于驱动程序的日志(我只在日志中看到我的日志级别和我的模式),但是来自执行器的日志不可用。我在日志中找不到“Hello Word”。另外,我检查了${warn.nodemanager.log dirs},它是空的,看起来

我正在运行以下代码

.map{x => 
    Logger.fatal("Hello World")
    x._2
 }
这是火花流应用在纱线上运行。我升级了log4j并提供了spark submit(使用--files)。我的Log4j配置是从日志中加载的,并应用于驱动程序的日志(我只在日志中看到我的日志级别和我的模式),但是来自执行器的日志不可用。我在日志中找不到“Hello Word”。另外,我检查了${warn.nodemanager.log dirs},它是空的,看起来很奇怪。我的日志在哪里

提前感谢您

根据Spark官方文档(),有两种方式可以管理日志记录:

  • 如果日志聚合已打开(使用
    warn.log-aggregation-enable-config
    ):
容器日志将从本地计算机(执行器)中删除,并复制到HDFS目录。使用
纱线日志
命令,可以从集群的任何位置查看这些日志,方式如下:

yarn logs -applicationId <app ID>
纱线原木-应用程序ID
  • 如果日志聚合未启用:
日志在每台机器上的
warn\u APP\u Logs\u DIR
下本地维护,根据HADOOP版本和安装情况,通常配置为
/tmp/Logs
$HADOOP\u HOME/Logs/userlogs
。根据文档,查看容器的日志需要转到包含它们的主机并查看此目录。

根据官方Spark文档(),有两种方法可以管理日志:

  • 如果日志聚合已打开(使用
    warn.log-aggregation-enable-config
    ):
容器日志将从本地计算机(执行器)中删除,并复制到HDFS目录。使用
纱线日志
命令,可以从集群的任何位置查看这些日志,方式如下:

yarn logs -applicationId <app ID>
纱线原木-应用程序ID
  • 如果日志聚合未启用:

日志在每台机器上的
warn\u APP\u Logs\u DIR
下本地维护,根据HADOOP版本和安装情况,通常配置为
/tmp/Logs
$HADOOP\u 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"
在哪里


我找到了解决方案,提交申请时必须按以下方式设置正确的
log4j
配置:

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


在我的例子中,日志聚合是打开的,但我无法使用纱线日志或web UI查看日志。奇怪的是,在我的例子中,日志聚合是打开的,但我无法使用Thread日志或web UI查看日志。这很奇怪