EventLoggingListener¶
EventLoggingListener is a SparkListener that writes out JSON-encoded events of a Spark application with event logging enabled (based on spark.eventLog.enabled configuration property).
EventLoggingListener supports custom configuration properties.
EventLoggingListener writes out log files to a directory (based on spark.eventLog.dir configuration property).
Creating Instance¶
EventLoggingListener takes the following to be created:
- Application ID
- Application Attempt ID
- Log Directory
- SparkConf
- Hadoop Configuration
EventLoggingListener is created when SparkContext is created (with spark.eventLog.enabled enabled).
EventLogFileWriter¶
logWriter: EventLogFileWriter
EventLoggingListener creates a EventLogFileWriter when created.
Note
All arguments to create an EventLoggingListener are passed to the EventLogFileWriter.
The EventLogFileWriter is started when EventLoggingListener is started.
The EventLogFileWriter is stopped when EventLoggingListener is stopped.
The EventLogFileWriter is requested to writeEvent when EventLoggingListener is requested to start and log an event.
Starting EventLoggingListener¶
start(): Unit
start requests the EventLogFileWriter to start and initEventLog.
initEventLog¶
initEventLog(): Unit
initEventLog...FIXME
Logging Event¶
logEvent(
event: SparkListenerEvent,
flushLogger: Boolean = false): Unit
logEvent persists the given SparkListenerEvent in JSON format.
logEvent converts the event to JSON format and requests the EventLogFileWriter to write it out.
Stopping EventLoggingListener¶
stop(): Unit
stop requests the EventLogFileWriter to stop.
stop is used when SparkContext is requested to stop.
inprogress File Extension¶
EventLoggingListener uses .inprogress file extension for in-flight event log files of active Spark applications.
Logging¶
Enable ALL logging level for org.apache.spark.scheduler.EventLoggingListener logger to see what happens inside.
Add the following line to conf/log4j.properties:
log4j.logger.org.apache.spark.scheduler.EventLoggingListener=ALL
Refer to Logging.