Spark是借鉴了mapreduce并在其基础上发展起来的,继承了其分布式计算的优点并改进了mapreduce明显的缺陷,但是二者也有不少的差异具体如下: 1、spark把运算的中间数据存放在内存,迭代计算效率更高;mapreduce的中间结果需要落地,需要保存到磁盘,这样必然会有磁盘io操做,影响 ...
分类:
其他好文 时间:
2019-07-22 20:04:25
阅读次数:
397
stage概念 Spark任务会根据RDD之间的依赖关系,形成一个DAG有向无环图,DAG会提交给DAGScheduler,DAGScheduler会把DAG划分相互依赖的多个stage,划分stage的依据就是RDD之间的宽窄依赖。遇到宽依赖就划分stage,每个stage包含一个或多个task任 ...
分类:
其他好文 时间:
2019-07-21 18:39:02
阅读次数:
88
1)A list of partitions RDD由很多partition构成,有多少partition就对应有多少task来执行 2)A function for computing each split 对RDD做计算,相当于对RDD的每个split或partition做计算 3)A list ...
分类:
其他好文 时间:
2019-07-21 16:31:29
阅读次数:
112
sparkRDD算子 分区/只读/依赖/缓存/checkPoint Transformation map(func) 返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成 filter(func) 返回一个新的RDD,该RDD由经过func函数计算后返回值为true的输入元素组成 ...
分类:
其他好文 时间:
2019-07-20 23:00:20
阅读次数:
116
RDD中cache和persist的区别 通过观察RDD.scala源代码即可知道cache和persist的区别: def persist(newLevel: StorageLevel): this.type = { if (storageLevel != StorageLevel.NONE && ...
分类:
系统相关 时间:
2019-07-11 09:17:38
阅读次数:
147
第 4 章 DStream 转换 DStream 上的原语与 RDD 的类似,分为 Transformations(转换)和 Output Operations(输 出)两种,此外转换操作中还有一些比较特殊的原语,如:updateStateByKey()、transform()以及 各种 Windo ...
分类:
其他好文 时间:
2019-07-09 19:10:07
阅读次数:
96
一,并行度 如果并行度设置的不足,那么就会导致集群浪费。Spark自动会根据文件的大小,是否可分割等因素来设置map的数目(后面会详细讲解输入格式,同时详细讲解各种输入的map数的决定)。对于分布式reduce操作,例如groupbykey和reducebykey,默认它使用的是分区数最大的父RDD ...
分类:
其他好文 时间:
2019-07-09 13:43:50
阅读次数:
92
第 5 章 RDD 编程进阶 5.1 累加器 累加器用来对信息进行聚合,通常在向 Spark 传递函数时,比如使用 map() 函数或者 用 filter() 传条件时,可以使用驱动器程序中定义的变量,但是集群中运行的每个任务都会 得到这些变量的一份新的副本,更新这些副本的值也不会影响驱动器中的对应 ...
分类:
其他好文 时间:
2019-07-07 22:44:37
阅读次数:
303
2.4 Action 行动算子:触发运算,在 Executor 执行,如果想直接在 Driver 端看到结果可以使用 collect 和 foreach 都可以将数据拉取到 Driver 端。 2.4.1 reduce(func) 案例 1. 作用:通过 func 函数聚集 RDD 中的所有元素,先 ...
分类:
其他好文 时间:
2019-07-07 09:41:36
阅读次数:
127
2.5 RDD 中的函数传递 在实际开发中我们往往需要自己定义一些对于 RDD 的操作,那么此时需要主要的 是,初始化工作是在 Driver 端进行的,而实际运行程序是在 Executor 端进行的,这就涉及 到了跨进程通信,是需要序列化的。下面我们看几个例子: 2.6 RDD 依赖关系 2.6.1 ...
分类:
其他好文 时间:
2019-07-07 09:25:51
阅读次数:
129