class InfluxDBSink extends SparkListener
InfluxDBSink: write Spark metrics and application info in near real-time to InfluxDB v 1.x use this mode to monitor Spark execution workload use for Grafana dashboard and analytics of job execution How to use: attach the InfluxDBSInk to a Spark Context using the extra listener infrastructure. Note: this is for InfluxDB v1.x Example: --conf spark.extraListeners=ch.cern.sparkmeasure.InfluxDBSink
Configuration for InfluxDBSink is handled with Spark conf parameters:
spark.sparkmeasure.influxdbURL (default "http://localhost:8086") spark.sparkmeasure.influxdbUsername (default "", this can be empty if InfluxDB is configured with no authentication) spark.sparkmeasure.influxdbPassword (default "") spark.sparkmeasure.influxdbName (default "sparkmeasure") spark.sparkmeasure.influxdbStagemetrics, (boolean, default is false) spark.sparkmeasure.influxdbEnableBatch, boolean, default true Note: this is to improve write performance, but it requires to explicitly stopping Spark Session for clean exit: spark.stop() consider setting it to false if this is an issue
This code depends on "influxdb.java", you may need to add the dependency: --packages org.influxdb:influxdb-java:2.14 Note currently we need to use version 2.14 as newer versions generate jar conflicts (tested up to Spark 3.3.0)
InfluxDBExtended: provides additional and verbose info on Task execution use: --conf spark.extraListeners=ch.cern.sparkmeasure.InfluxDBSinkExtended
InfluxDBSink: the amount of data generated is relatively small in most applications: O(number_of_stages) InfluxDBSInkExtended can generate a large amount of data O(Number_of_tasks), use with care
- Alphabetic
- By Inheritance
- InfluxDBSink
- SparkListener
- SparkListenerInterface
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new InfluxDBSink(conf: SparkConf)
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- var appId: String
- var appName: String
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
- val database: InfluxDB
- val dbName: String
- var dynamicAllocationEnabled: String
- val enableBatch: Boolean
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- val influxDB: InfluxDB
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val logStageMetrics: Boolean
- lazy val logger: Logger
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
def
onApplicationEnd(applicationEnd: SparkListenerApplicationEnd): Unit
- Definition Classes
- InfluxDBSink → SparkListener → SparkListenerInterface
-
def
onApplicationStart(applicationStart: SparkListenerApplicationStart): Unit
- Definition Classes
- InfluxDBSink → SparkListener → SparkListenerInterface
-
def
onBlockManagerAdded(blockManagerAdded: SparkListenerBlockManagerAdded): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onBlockManagerRemoved(blockManagerRemoved: SparkListenerBlockManagerRemoved): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onBlockUpdated(blockUpdated: SparkListenerBlockUpdated): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onEnvironmentUpdate(environmentUpdate: SparkListenerEnvironmentUpdate): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onExecutorAdded(executorAdded: SparkListenerExecutorAdded): Unit
- Definition Classes
- InfluxDBSink → SparkListener → SparkListenerInterface
-
def
onExecutorBlacklisted(executorBlacklisted: SparkListenerExecutorBlacklisted): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onExecutorBlacklistedForStage(executorBlacklistedForStage: SparkListenerExecutorBlacklistedForStage): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onExecutorExcluded(executorExcluded: SparkListenerExecutorExcluded): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onExecutorExcludedForStage(executorExcludedForStage: SparkListenerExecutorExcludedForStage): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onExecutorMetricsUpdate(executorMetricsUpdate: SparkListenerExecutorMetricsUpdate): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onExecutorRemoved(executorRemoved: SparkListenerExecutorRemoved): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onExecutorUnblacklisted(executorUnblacklisted: SparkListenerExecutorUnblacklisted): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onExecutorUnexcluded(executorUnexcluded: SparkListenerExecutorUnexcluded): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onJobEnd(jobEnd: SparkListenerJobEnd): Unit
- Definition Classes
- InfluxDBSink → SparkListener → SparkListenerInterface
-
def
onJobStart(jobStart: SparkListenerJobStart): Unit
- Definition Classes
- InfluxDBSink → SparkListener → SparkListenerInterface
-
def
onNodeBlacklisted(nodeBlacklisted: SparkListenerNodeBlacklisted): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onNodeBlacklistedForStage(nodeBlacklistedForStage: SparkListenerNodeBlacklistedForStage): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onNodeExcluded(nodeExcluded: SparkListenerNodeExcluded): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onNodeExcludedForStage(nodeExcludedForStage: SparkListenerNodeExcludedForStage): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onNodeUnblacklisted(nodeUnblacklisted: SparkListenerNodeUnblacklisted): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onNodeUnexcluded(nodeUnexcluded: SparkListenerNodeUnexcluded): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onOtherEvent(event: SparkListenerEvent): Unit
- Definition Classes
- InfluxDBSink → SparkListener → SparkListenerInterface
-
def
onResourceProfileAdded(event: SparkListenerResourceProfileAdded): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onSpeculativeTaskSubmitted(speculativeTask: SparkListenerSpeculativeTaskSubmitted): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onStageCompleted(stageCompleted: SparkListenerStageCompleted): Unit
- Definition Classes
- InfluxDBSink → SparkListener → SparkListenerInterface
-
def
onStageExecutorMetrics(executorMetrics: SparkListenerStageExecutorMetrics): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onStageSubmitted(stageSubmitted: SparkListenerStageSubmitted): Unit
- Definition Classes
- InfluxDBSink → SparkListener → SparkListenerInterface
-
def
onTaskEnd(taskEnd: SparkListenerTaskEnd): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onTaskGettingResult(taskGettingResult: SparkListenerTaskGettingResult): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onTaskStart(taskStart: SparkListenerTaskStart): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onUnpersistRDD(unpersistRDD: SparkListenerUnpersistRDD): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onUnschedulableTaskSetAdded(unschedulableTaskSetAdded: SparkListenerUnschedulableTaskSetAdded): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
-
def
onUnschedulableTaskSetRemoved(unschedulableTaskSetRemoved: SparkListenerUnschedulableTaskSetRemoved): Unit
- Definition Classes
- SparkListener → SparkListenerInterface
- val password: String
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
- val url: String
- val username: String
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated