Spark BypassMergeSortShuffleWriter 原理

Spark BypassMergeSortShuffleWriter 原理 Spark的 shuffle 过程比较复杂,涉及到map端和reduce端的共同配合,这篇文章主要介绍map端的运行原理。map端的操作主要由 ShuffleWriter 实现,Shuffle Writer 有着三种不同的算法,对应于不同的情形。因为……

Spark Executor 节点运行原理

Spark Executor 节点运行原理 Executor运行流程图 Executor 节点启动 这里讲的spark运行的场景都是在Yarn上。从这边博客 {% post_link spark-on-yarn %} ,可以看到Executor节点的启动函数,是CoarseGrainedExecuto……

Spark MapOutputTracker 原理

Spark MapOutputTracker 原理 Spark的shuffle过程分为writer和reader两块。 writer负责生成中间数据,reader负责整合中间数据。而中间数据的元信息,则由MapOutputTracker负责管理。……

Spark 内存管理

前言 spark自己实现了一套内存的管理,为了精准的控制内存。因为JVM的垃圾回收不可控制,尤其是大内存的回收,会造成程序暂停长时间。spark为了避免这种情况,实现了内存的管理,尤其是针对大内存。对于……

Spark Rpc 客户端原理

Spark Rpc 客户端原理 Spark Rpc 客户端涉及到多个组件,根据发送消息和接收消息的流程,逐一介绍这些组件。可以参见流程图 {% post_link spark-rpc-flow %} RpcEndpointRef RpcEndpointRef表示客户端,它提供了两个接口发送请求。send方法表示发送请……

Spark Rpc 原理介绍

Spark Rpc 原理介绍 Spark的Rpc服务,是整个Spark框架的基石。Spark的很多服务都是基于Rpc框架之上的,它承担了各个服务之间的信息交流。下面是Rpc的各个组件运行的流程图 : rpc客户端发送消息 RpcEndpointRef……

Spark序列化与压缩原理

Spark的序列化与压缩 spark是分布式的计算框架,其中涉及到了 rpc 的通信和中间数据的缓存。spark为了高效率的通信和减少数据存储空间,会把数据先序列化,然后处理。 序列化种类 这篇文章讲的是spark……

Spark Partitioner 原理

分区器 当RDD触发到shuffle的时候,会将数据重新打乱分配。如下图所示,父RDD经过shuffle将数据重新分配,生成子RDD 分配的原理,由分区器会决定数据分配到子RDD的哪个分区。分区器由Par……

Spark RDD之间的依赖

Spark RDD之间的依赖 RDD表示分布式的数据集,它是由多个分区组成。RDD封装了底层原理,使得我们编程更加抽象,更加方便。 当我们执行RDD的常见操作时(比如map,filter,groupby等trans……

Spark 运行在Yarn上的原理

前言 为了更好的管理集群资源,一般都会有资源管理调度器,所有的服务都需要服从调度器的安排才能运行。Hadoop 集群内置了 Yarn 资源管理器,而 Spark 处理的数据一般存储在 Hadoop 里,所以 Spark 也支持运行在 Yarn 上面。本篇会介绍 Spark……