[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))
相关推荐
笨蛋少年派1 天前
*Spark简介
大数据·分布式·spark
红队it1 天前
【数据分析】基于Spark链家网租房数据分析可视化大屏(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✅
java·数据库·hadoop·分布式·python·数据分析·spark
奥特曼_ it1 天前
【数据分析】基于Spark链家网租房数据分析可视化大屏(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✔
大数据·笔记·分布式·数据挖掘·数据分析·spark·毕设
是阿威啊2 天前
企业级的RDD、 Spark SQL、DataFrame、Dataset使用场景介绍
大数据·sql·spark
yBmZlQzJ3 天前
财运到内网穿透域名解析技术机制与中立评估
运维·经验分享·docker·容器·1024程序员节
yBmZlQzJ3 天前
内网穿透工具通过端口转发实现内外网通信
运维·经验分享·docker·容器·1024程序员节
是阿威啊3 天前
【第六站】测试本地项目连接虚拟机上的大数据集群
大数据·linux·hive·hadoop·spark·yarn
数据皮皮侠AI3 天前
数字经济政策工具变量数据(2008-2023)
大数据·数据库·人工智能·笔记·1024程序员节
是阿威啊3 天前
【第五站】集群组件一键启动/关闭脚本(Hadoop/YARN + Hive + Spark)
linux·运维·hive·hadoop·spark