[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))
相关推荐
乌恩大侠5 小时前
【AI-RAN】硬件产品:DELL 前传交换机
人工智能·spark·aerial·o-ru·ai-ran
starzy199011 小时前
Spark 核心之自定义累加器以及版本对比变化深度剖析
大数据·ajax·spark
用户36105886261216 小时前
Spark 核心之 Spark-SortShufflebypass 原理深度剖析
大数据·spark
starzy199018 小时前
Spark 核心之二次排序、分组取 TopN 优化分析
大数据·分布式·spark
乌恩大侠2 天前
图解 AI-RAN开发需要哪些软硬件:O-RU、DGX Spark、Sionna与Aerial
人工智能·spark·o-ru·ai-ran
阿里云大数据AI技术2 天前
阿里云 EMR Daft AI Function:用 DataFrame 表达式搞定大模型调用与多模态向量化
人工智能·spark
BD_Marathon3 天前
部署Spark
大数据·javascript·spark
Blossom i3 天前
Python+spark2.0+Hadoop机器学习与大数据实战第十一章:Python Spark的集成开发环境
大数据·hadoop·spark
BD_Marathon3 天前
开发Spark应用程序
大数据·ajax·spark
用户3610588626124 天前
Spark 核心之广播变量、累加器原理深度剖析
大数据·spark