爱吃芒果

Spark物理执行计划

Spark物理执行计划生成方法

Spark具体采用3个步骤来生成物理执行计划,首先根据action操作顺序将应用划分为作业(job),然后根据每个job的逻辑处理流程中的ShuffleDependency依赖关系,将job划分为执行阶段(stage)。最后在每个stage中,根据最后生成的RDD的分区个数生成多个计算任务(task)。

Grpc Metric

OpenTelemetry

OpenTelemetry是CNCF孵化的开源观测框架,用于创建和管理遥测数据(telemetry),比如metrics, tracing, logs。这一项目的核心目标是避免依赖于vendor,从而可以更好地集成和拓展。

Spark逻辑处理流程

Spark应用程序需要先转化为逻辑处理流程,逻辑处理流程主要包括:

  • RDD数据模型
  • 数据操作
  • 数据依赖关系

数据操作分为两种,transformation操作并不会触发job的实际执行,action操作创建job并立即执行。类似于java中的stream,采用懒加载的方式。

Spark基础知识

RDD数据模型

RDD (Resilient Distributed DataSet)是spark对计算过程中输入输出数据以及中间数据的抽象,表示不可变、分区的集合数据,可以被并行处理。

Grpc源码分析

gprc流程概括

/posts/grpc-in-practice/grpc%E6%B5%81%E7%A8%8B%E6%A6%82%E6%8B%AC.png

grpc的流程可以大致分成两个阶段,分别为grpc连接阶段和grpc交互阶段,如图所示(此图来自后面的参考文献)。

在RPC连接阶段,client和server之间建立起TCP连接,grpc底层依赖于HTTP2,因此client和server还需要协调frame的相关设置,例如frame的大小,滑动窗口的大小等。