- 博客(8)
- 收藏
- 关注
原创 Spark-存储体系解析
Spark 存储体系是各个 Driver 和 Executor 实例中的 BlockManager 所组成的。但是从一个整体出发,把各个节点的 BlockManager 看成存储体系的一部分,那么存储体系还有更多衍生的内容,比如块传输服务、map 任务输出跟踪器、Shuffle 管理器等。
2024-08-07 17:58:48 1548
原创 Spark-SparkEnv简析之二
BroadcastManager 的底层都依赖于 SparkEnv 的存储体系。每个 map 任务或者 reduce 任务都会有其唯一标识,分别为 mapId 和 reduceId,每个 reduce 任务的输入可能是多个 map 任务的输出,reduce 会到各个 map任 务所在的节点上拉取 Block,这一过程叫做Shuffle,每次Shuffle都有唯一的标识shuffleId。以前缀为实例,后缀为新属性的 key,KV 对的 value 作为新属性的 value。
2024-07-26 17:27:42 573
原创 Spark-SparkEnv简析之一
私有方法 create 用于创建 SparkEnv,在这个方法中涉及很多 SparkEnv 内部组件的实例化过程RpcEnv// RPC 最大重新连接次数,可以使用 spark.rpc.numRetries 属性进行配置,默认为3次// RPC 每次重新连接需要等待的毫秒数,可以使用 spark.rpc.retry.wait 属性进行配置,默认值为 3 秒// RPC 的 ask 操作的默认超时时间。
2024-07-22 11:44:11 1631
原创 Spark-SparkContext类解析
SparkDriver 的初始化始终围绕着 SparkContext 的初始化。SparkContext 可以算得上是 Spark 应用程序的发动机引擎,SparkContext 初始化完毕,才能向 Spark 集群提交应用程序,而 SparkContext 的配置参数则由 SparkConf 负责SparkContext 主要由以下内部组件组成SparkEnv : Spark 运行时环境,Executor是处理任务的执行器,它依赖于SparkEnv提供的运行时环境。
2024-07-15 18:02:27 1916
原创 Spark-事件及度量
当有事件需要通知监听器的时候,可以调用 ListenerBus 的 postToAII 方法,postToAlI 方法遍历所有监听器并调用 SparkListenerBus 实现的 doPostEvent 方法,doPostEvent 方法对事件类型进行匹配后调用监听器的不同方法。整个投递事件的过程是通过方法调用实现的,所以这是一个。在监听器比较多的时候,这个过程会相对比较耗时,在 SparkUI 中为了达到页面的即时刷新,实现了SparkListenerBus 的子类 LiveListenerBus。
2024-07-10 11:39:04 984
原创 Spark-RPC框架解析之组件介绍及流程再探
在Message接口中可以看到对于body方法的返回是 ManagedBuffer,ManagedBuffer 提供了由字节构成数据的不可变视图,类似关系型数据库的视图,不存储数据,也不是数据的实际来源,ManagedBuffer 抽象类的定义如下。TransportServerBootstrap 的列表 bootstraps 出现在 TransportServer 的构造器中,接口 TransportServerBootstrap 定义了服务端引导程序的规范,服务端引导程序是。
2024-07-05 17:22:23 945
原创 Spark源码之SparkConf解析
Spark 配备了各种各样的系统配置参数,SparkConf 是 Spark 的配置类。Spark 中的每一个组件都直接或者间接地使用着它所存储的属性Spark 的配置通过3种方式获取。
2024-06-26 10:48:25 465
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人