spark源码
文章平均质量分 90
吃货先生
几年工作经验总结,在一些难点中加入自己的理解,希望与您交流,共同成长
展开
-
spark core源码阅读-RDD详细介绍(四)
之前对RDD有一个大体概念了解,这一节我们需要深入了解它,了解在源码中到底是什么, 怎么产生的,给个rdd之间怎么依赖的,最后又怎么生成spark job我们还是先从一个例子下手:val sc = new SparkContext(sparkConf)val res = sc .textFile(args(0)) .flatMap(line => line.spli...原创 2018-02-11 18:57:33 · 4842 阅读 · 0 评论 -
spark core源码阅读-Storage shuffle(八)
spark core源码阅读-Storage shuffle(八)本节主要介绍RDD.aggregateByKey导致的shuffle,分两部分map shuffle,reduce shuffle一 map shuffleShuffleMapTask中Task如何处理rdd.iterator,shuffle中Map端如何根据根据分区把数据写入文件.主要类简述Shuff...原创 2018-02-28 13:07:02 · 595 阅读 · 0 评论 -
spark core源码阅读-提交作业(三)
spark core源码阅读-提交作业(三)通过例子了解spark提交执行流程下面是spark计算PI,通过蒙特卡洛算法: 在一个边长为a的正方形内一均匀概率随机投点,该点落在此正方形的内切圆中的概率即为内切圆与正方形的面积比值 即:Pi * (a / 2)^2 : a^2 = Pi / 4 = 落在圆中个数 / 总次数val count = spark .parallel原创 2018-02-07 19:42:29 · 541 阅读 · 0 评论 -
spark core源码阅读-基本架构(二)
spark core源码阅读-基本架构(二)Spark基本框架基本组件首先有一个大体感知,下图是spark standalone模型的架构图 几种模式local:本地测试使用YARN: 基于hadoop资源管理器Mesos: 一种比Yarn管理更细的资源管理器YARN的架构图: ResourceManager: 集群资源管理器 NodeMana原创 2018-02-07 19:42:08 · 650 阅读 · 0 评论 -
spark-core源码阅读-累加器(十)
spark-core源码阅读-累加器(十)使用场景累加器是一种支持并行只能added的特殊变量,常用来计次/求和,我们也可以自行定义新数据类型支持added基本原理累加器变量在每个task任务中依次added,把结果传到Driver端进行合并,所以这是分布式计算,只有driver端才能读取累加器最终值先看一个例子object AccumulatorTest ...原创 2018-03-07 00:41:58 · 962 阅读 · 0 评论 -
spark core源码阅读-Task介绍(六)
Task一个执行单位, Spark中有两种Task: Spark工作由一个或多个阶段组成, 作业的最后一个阶段由多个ResultTasks组成,而早期的阶段由ShuffleMapTasks组成ShuffleMapTask ShuffleMapTask执行任务并将任务输出分为多个桶(基于任务的分区程序)ResultTask ResultTask执行任务并将任务输出发送回驱动程序应用...原创 2018-02-13 17:49:08 · 365 阅读 · 0 评论 -
spark core源码阅读-环境准备(一)
spark源码阅读-环境准备(一)基于1.6.0版本结合源码理解spark on yarn环境准备下载代码: https://github.com/juntaozhang/spark/tree/my.v1.6.0 git clone https://github.com/juntaozhang/spark.git git checkout my.v1.6.0 mv原创 2018-02-06 19:07:45 · 2094 阅读 · 1 评论 -
spark core源码阅读-RDD与Stage(五)
我们之前说过RDD只是抽象概念,RDD会被转换成Stage,进而被转换成Task,在Executor上执行,今天我们跟一下源码看spark是 如何转换的Stagestage是一组并行任务,被作为Spark任务的一部分运行,并且这些任务持有相同的shuffle依赖.每个任务的DAG根据哪边发生 shuffle为边界划stages,并在调度器中执行有序的stages拓扑图,具体分为:...原创 2018-02-12 18:36:57 · 488 阅读 · 0 评论 -
spark core源码阅读-内存管理(七)
spark core源码阅读-内存管理(七)存储级别每个StorageLevel都会记录是否使用内存或ExternalBlockStore, 如果内存或ExternalBlockStore内存不足,是否将RDD丢弃到磁盘, 是否以串行化格式保存内存中的数据以及是否在多个节点上复制RDD分区。class StorageLevel private( private va...原创 2018-02-26 19:19:33 · 470 阅读 · 0 评论 -
spark core源码阅读-广播(九)
spark-core源码阅读-广播前言(spark core源码阅读-Task介绍(六))我们讨论过submitMissingTasks,期间谈到broadcast,当时只是说把序列化过得taskBytes 广播到出去,这里详细讨论广播实现原理BroadcastManager在SparkEnv初始化时被实例化,实例化中initialize实例化BroadcastFactory,默...原创 2018-03-04 21:06:04 · 584 阅读 · 0 评论