- 博客(8)
- 资源 (2)
- 收藏
- 关注
原创 “戏”说spark---spark 内存管理详解
Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优。在“戏”说Spark---Spark架构一文中,我们知道在执行 Spark 的应用程序时,Spark 集群会启动 Driver 和 Executor 两种 JVM 进程,前者为主控进程,负责创建 Spark 上下文,提交 Spark 作业(Job),并将作业转化为计算任务(Task),在各个 Executor 进程间协调任务
2017-12-05 21:18:44 1081
原创 “戏”说spark---资源调度和任务调度
在“戏”说Spark-spark运行模式简解一文中不管是以client或者是以cluster的方式提交到Standalone上还是提交到yarn上,我们就概括性的描述了提交运行的流程,大概就是创建Driver,申请资源,分发任务,执行任务,返回结果这么一个过程。在“戏”说Spark-Spark核心-Stage划分及Pipline的计算模式一文中,我们详细的了解了RDD宽窄依赖的划分是为了Stage的划分,Stage的划分是为了实现再依赖组成的stage里面的Pipline的计算模型,那Spark是怎么实现资
2017-12-05 21:03:33 980
原创 “戏”说spark---spark Shuffle详解(二)
Spark中两种ShuffleManager,HashShuffleManager和SortShuffleManager,那么在Shuffle中,Reduce节点是怎么知道map端溢写文件的位置的呢?Reduce端是怎么拉取数据的呢?
2017-12-05 20:52:24 747
原创 “戏”说spark---spark Shuffle详解(一)
Shuffle 过程本质上都是将 Map 端获得的数据使用分区器进行划分,并将数据发送给对应的 Reducer 的过程。 shuffle作为处理连接map端和reduce端的枢纽,其shuffle的性能高低直接影响了整个程序的性能和吞吐量。map端的shuffle一般为shuffle的Write阶段,reduce端的shuffle一般为shuffle的read阶段。Hadoop和spark的shuffle在实现上面存在很大的不同,spark的shuffle分为两种实现,分别为HashShuffle和Sort
2017-12-05 20:36:54 3558 2
原创 “戏”说Spark-spark运行模式简解
目前Apache Spark支持一种本地运行模式local,三种分布式运行方式(常用),分别是standalone、spark on mesos和 spark on YARN,其中,第一种类似于MapReduce 1.0所采用的模式,内部实现了容错性和资源管理,后两种则是未来发展的趋势,部分容错性和资源管理交由统一的资源管理系统完成:让Spark运行在一个通用的资源管理系统之上,这样可以与其他计算框架,比如MapReduce,公用一个集群资源,最大的好处是降低运维成本和提高资源利用率(资源按需分配)
2017-12-05 20:22:16 663
原创 “戏”说Spark-Spark核心-Stage划分及Pipline的计算模式
在spark中,会根据RDD之间的依赖关系将DAG图划分为不同的阶段,对于窄依赖,由于partition依赖关系的确定性,partition的转换处理就可以在同一个线程里完成,窄依赖就被spark划分到同一个stage中,而对于宽依赖,只能等父RDD shuffle处理完成后,下一个stage才能开始接下来的计算。 因此spark划分stage的整体思路是:从后往前推,遇到宽依赖就断开,划分为一个stage;遇到窄依赖就将这个RDD加入该stage中。因此在图2中RDD C,RDD D,RDD E,RDDF
2017-12-05 20:07:24 1558 1
原创 “戏”说Spark-Spark核心-RDD转换操作算子详解(二)
对于RDD可以有两种计算方式: 转换(返回值还是一个RDD)---懒执行 操作(返回值不是一个RDD)---立即执行 转换(Transformations) (如:map, filter, groupBy, join等),Transformations操作是Lazy的,也就是说从一个RDD转换生成另一个RDD的操作不是马上执行,Spark在遇到Transformations操作时只会记录需要这样的操作,并不会去执行,需要等到有Actions操作的时候才会真正启动计算过程进行计算
2017-12-04 22:51:00 535
原创 “戏”说Spark-Spark核心-RDD转换操作算子详解(一)
对于RDD可以有两种计算方式: 转换(返回值还是一个RDD)---懒执行 操作(返回值不是一个RDD)---立即执行 转换(Transformations) (如:map, filter, groupBy, join等),Transformations操作是Lazy的,也就是说从一个RDD转换生成另一个RDD的操作不是马上执行,Spark在遇到Transformations操作时只会记录需要这样的操作,并不会去执行,需要等到有Actions操作的时候才会真正启动计算过程进行计算。 操作(Actions) (
2017-12-04 00:01:52 1117
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人