Spark监听器源码阅读

一、注册监听器并消费事件

1、创建 SparkEnv

org.apache.spark.SparkContext#createSparkEnv

2、启动用户设置的监听器

org.apache.spark.SparkContext#setupAndStartListenerBus
val EXTRA_LISTENERS = ConfigBuilder("spark.extraListeners")
conf.get(EXTRA_LISTENERS).foreach { classNames =>
	val listeners = Utils.loadExtensions(classOf[SparkListenerInterface], classNames, conf)
	listeners.foreach { listener =>
		listenerBus.addToSharedQueue(listener)
		logInfo(s"Registered listener ${listener.getClass().getName()}")
	}
}

3、将监听器添加到 shared 队列

org.apache.spark.scheduler.LiveListenerBus#addToSharedQueue
	org.apache.spark.scheduler.LiveListenerBus#addToQueue
		判断队列是否存在,如果存在就将监听器放到队列中,不存在要新建队列:AsyncEventQueue
		  queues.asScala.find(_.name == queue) match {
			  case Some(queue) =>
				queue.addListe
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值