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
纱线日志
命令,可以从集群的任何位置查看这些日志,方式如下:
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
纱线日志
命令,可以从集群的任何位置查看这些日志,方式如下:
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查看日志。这很奇怪