[Spark] TaskMetrics指标收集

  1. Executor.TaskRunner.run --> serializedResult
    这里排除一些零值,序列化后发送
scala 复制代码
val accumUpdates = if (RESULT_DROP_ZEROES_PREFIXES.nonEmpty) {
  task.collectAccumulatorUpdates()
      .filterNot(acc => RESULT_DROP_ZEROES_PREFIXES
          .exists(acc.getClass.getName.startsWith(_)) && acc.isZero)
} else {
  task.collectAccumulatorUpdates()
}
val serializedDirectResult = ser.serialize(directResult)
  1. CoarseGrainedExecutorBackend.statusUpdate --> data
  2. CoarseGrainedSchedulerBackend.receive --> data.value
  3. TaskSchedulerImpl.statusUpdate --> serializedData: ByteBuffer
  4. TaskResultGetter.enqueueSuccessfulTask
    反序列化后得到 result,是一个TaskResult
scala 复制代码
val (result, size) = serializer.get().deserialize[TaskResult[_]](serializedData) 
  1. TaskSchedulerImpl.handleSuccessfulTask --> taskResult
  2. TaskSetManager.handleSuccessfulTask --> result.accumUpdates
  3. DAGScheduler.taskEnded --> accumUpdates
    发送Task完成消息到eventProcessLoop,等待处理
scala 复制代码
eventProcessLoop.post(CompletionEvent(task, reason, result, accumUpdates, metricPeaks, taskInfo))
  1. DAGScheduler.handleTaskCompletion --> event
  2. DAGScheduler.postTaskEnd
    这里通过fromAccumulators得到 taskMertics,最后发送 TaskEnd 事件
scala 复制代码
val taskMetrics: TaskMetrics = TaskMetrics.fromAccumulators(event.accumUpdates)

listenerBus.post(SparkListenerTaskEnd(event.task.stageId, event.task.stageAttemptId,
      Utils.getFormattedClassName(event.task), event.reason, event.taskInfo,
      new ExecutorMetrics(event.metricPeaks), taskMetrics))
相关推荐
数据皮皮侠AI2 天前
顶刊同款!中国地级市风灾风险与损失数据集(2000-2022)|灾害 / 环境 / 经济研究必备
大数据·人工智能·笔记·能源·1024程序员节
武子康2 天前
大数据-270 Spark MLib-机器学习库快速入门(分类/回归/聚类/推荐)
大数据·后端·spark
DolphinScheduler社区2 天前
第 8 篇|Apache DolphinScheduler 与 Flink Spark 数据引擎的边界、协同与最佳实践
大数据·flink·spark·开源·apache·海豚调度·大数据工作流调度
黄焖鸡能干四碗2 天前
企业元数据梳理和元数据管理方案(PPT方案)
大数据·运维·网络·分布式·spark
木心术12 天前
大数据处理技术:Hadoop与Spark核心原理解析
大数据·hadoop·分布式·spark
talen_hx2963 天前
《零基础入门Spark》学习笔记 Day 16
笔记·学习·spark
Fab1an3 天前
Busqueda——Hack The Box 靶机
linux·服务器·学习·1024程序员节
技术专家3 天前
Stable Diffusion系列的详细讨论 / Detailed Discussion of the Stable Diffusion Series
人工智能·python·算法·推荐算法·1024程序员节
我要用代码向我喜欢的女孩表白4 天前
在spark集群上在部署一套spark环境,不要影响过去环境
大数据·分布式·spark
新缸中之脑4 天前
Meta新模型Muse Spark上手体验
大数据·分布式·spark