繁体   English   中英

Spark Streaming Standalone:保存日志

[英]Spark Streaming Standalone : Save logs

我正在独立设置(版本1.6.1)上运行Spark-streaming应用程序。 当我使用spark-submit运行应用程序时,日志显示在终端上。 这些在以后很有用,例如,了解应用失败的原因(如果失败)。

通过阅读文档,我将spark.eventLog.enabled标志设置为true。 但是,这只会将事件日志保存到tmp / spark-events文件夹。 如我所见,这些日志对我没有多大用处。 由于许多例外,我的工作经常失败。 存储这些显示在终端中的日志(我想是驱动程序日志)并分析异常的正确方法是什么?

如果只想记录驱动程序侧发生的事件,最简单的方法是为spark提供一个记录配置文件。 默认情况下,spark使用log4j进行日志记录,因此在开始执行spark-submit作业时,可以使用spark.driver.extraJavaOptions标志传入log4j配置,并向其中添加RollingFileAppender

spark.driver.extraJavaOptions=-Dlog4j.configuration=/path/to/your/log4j.xml

这是log4j-1.2滚动附加程序xml的基本模式:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="log.txt" />
        <appendToFile value="true" />
        <rollingStyle value="Size" />
        <maxSizeRollBackups value="10" />
        <maximumFileSize value="100KB" />
        <staticLogFileName value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
    </appender>
    <logger name="log4j.rootLogger" additivity="false">
    <level value="DEBUG"/>
    <appender-ref ref="RollingFileAppender"/>
</logger>
</log4j:configuration>

您可以在spark文档的Spark Configuration部分中找到更多信息。

如果您还希望记录驱动程序节点上发生的事件,那么建议您研究一下可以从分布式系统中收集日志的外部服务。

我将这些行添加到SPARK_HOME / conf / log4j.properties

log4j.rootLogger=ERROR, file
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=/tmp/application.log
log4j.appender.file.append=false
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

可以使用任何log4j附加程序。 我在这里使用文件追加程序。

PS仍然,标准输出日志丢失。 仅保存stderr日志。 尚未弄清楚原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM