[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))
相关推荐
Lansonli5 小时前
大数据Spark(七十三):Transformation转换算子glom和foldByKey使用案例
大数据·分布式·spark
liu****10 小时前
18.HTTP协议(一)
linux·网络·网络协议·http·udp·1024程序员节
洛_尘10 小时前
JAVA EE初阶 6: 网络编程套接字
网络·1024程序员节
keep__go15 小时前
spark 单机安装
大数据·运维·分布式·spark
蒙特卡洛的随机游走1 天前
Spark的persist和cache
大数据·分布式·spark
蒙特卡洛的随机游走1 天前
Spark 中 distribute by、sort by、cluster by 深度解析
大数据·分布式·spark
梦里不知身是客111 天前
Spark中的宽窄依赖-宽窄巷子
大数据·分布式·spark
2301_800256111 天前
关系数据库小测练习笔记(1)
1024程序员节
闲人编程1 天前
Python与大数据:使用PySpark处理海量数据
大数据·开发语言·分布式·python·spark·codecapsule·大规模
金融小师妹1 天前
基于多源政策信号解析与量化因子的“12月降息预期降温”重构及黄金敏感性分析
人工智能·深度学习·1024程序员节