apache-spark - log4j 集群模式的日志在哪里写?
问题描述
用途 - 将自定义日志从流应用程序存储到 HDFS 或 UNIX 目录以用于流应用程序
我在集群模式下运行火花流程序。但是日志没有被写入给定的日志路径。检查了 HDFS 和本地目录。通过 log4j 调试属性,我可以看到正在运行的文件。我错过了什么吗?
--files log4j_driver.properties
--conf "spark.driver.extraJavaOptions=-Dlog4j.configuration=log4j_driver.properties -Dlog4j.debug=true "
--conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=log4j_driver.properties - Dlog4j.debug=true"
Log4j-属性文件
我的 Log4j 属性文件 -
日志=/tmp/cc
log4j.rootLogger=INFO,滚动
log4j.appender.rolling=org.apache.log4j.RollingFileAppender
log4j.appender.rolling.File=${log}/abc.log
log4j.appender.rolling.layout=org.apache.log4j。 PatternLayout
log4j.appender.rolling.layout.conversionPattern=[%d] %p %m (%c)%n
log4j.appender.rolling.maxFileSize=2KB
log4j.appender.rolling.maxBackupIndex=10
log4j.appender.rolling.encoding =UTF-8
log4j.logger.org.apache.spark=INFO
log4j.appender.rolling.ImmediateFlush=true
log4j.appender.rolling.Threshold=debug
log4j.appender.rolling.Append=true
log4j.logger.org.eclipse。码头=信息
集群驱动程序日志
log4j:将文件 /tmp/cc/abc.log.2 重命名为 /tmp/cc/abc.log.3
log4j:将文件 /tmp/cc/abc.log.1 重命名为 /tmp/cc/abc.log.2
log4j:将文件 /tmp/cc/abc.log 重命名为 /tmp/cc/abc.log.1
log4j:setFile 调用:/tmp/cc/abc.log,false
log4j:setFile 结束
log4j:滚动计数 = 5141
log4j : maxBackupIndex=10
log4j: 将文件 /tmp/cc/abc.log.9 重命名为 /tmp/cc/abc.log.10
log4j: 将文件 /tmp/cc/abc.log.8 重命名为 /tmp/cc/abc .log.9
log4j:将文件 /tmp/cc/abc.log.7 重命名为 /tmp/cc/abc.log.8
log4j:将文件 /tmp/cc/abc.log.6 重命名为 /tmp/cc/abc .log.7
我读到 - 我们可以在 log4j 中指定 - ${spark.yarn.app.container.log.dir}/app.log 但不确定此属性的默认路径是什么,或者我们是否还需要手动设置。当我在客户端模式下运行此应用程序时 - 日志完美地记录到本地目录。
解决方案
当您在集群模式 ( --deploy-mode cluster
) 中启动 Spark 应用程序时,log=/tmp/cc
指向/tmp/cc
它位于运行驱动程序和执行程序的“容器”的根目录下。它们将位于集群中的机器上。
在您的情况下,您必须找到运行驱动程序和执行程序的机器并找到目录。
由于像 Spark 一样在分布式环境中管理日志非常麻烦,Spark 支持的集群管理器(即 Hadoop YARN、Apache Mesos、Kubernetes)允许从机器收集日志并通过 Web UI 或命令行提供去下载。在 YARN 中,它是yarn logs -applicationId。
推荐阅读
- testing - 如何在 Testcafe 一个浏览器中按顺序运行测试?
- kubernetes - Pod 的 sidecar 容器能否检测到应用容器的用户并使用它?
- php - 仅来自 AWS lightail 的 SQL sysntax 问题
- graalvm - 是什么让 GraalVM Native Image 运行得如此之快?
- python - Pandas 使用 keras 模型应用 InvalidArgumentError: indices[0,0] = -1 is not in [0, 9725)
- coldfusion - 创建 lucee 电子表格 -
- elasticsearch - 需要集成Node+Express+GraphQL+ApolloServer+ElasticSearch的解决方案
- java - 在邮递员中,我得到了正确的 json 响应,但是当我通过 restTemplate 访问服务时,我得到了中文字符
- javascript - 用momentjs比较时间和日期
- ubuntu - gnome-terminal 打印不必要的日志记录