如果您只想記錄發生在驅動程序一側的事件,最簡單的方法是爲spark提供一個日誌記錄配置文件。默認情況下,火花塞使用log4j做記錄,所以開始你的火花提交作業時,您可以使用spark.driver.extraJavaOptions
標誌在你的log4j的配置通過,並添加RollingFileAppender
到它:
spark.driver.extraJavaOptions=-Dlog4j.configuration=/path/to/your/log4j.xml
這是一個對log4j的-1.2滾動的appender 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 Configuration部分的更多信息。
如果您還想記錄發生在驅動程序節點上的事件,那麼我建議您查看可以從分佈式系統收集日誌的外部服務。
感謝您的回覆!我沒有機會測試這個。將盡快回復 – void
嘿,我只是試過這個,並在最後得到了許多log4j:WARN語句:'.... .... log4j:錯誤找不到名爲[FILE]的appender。 使用Spark的默認log4j配置文件:org/apache/spark/log4j-defaults.properties'' – void
@Aswin修復它。它應該是「RollingFileAppender」。 –