Spark操作算子本质-RDD的容错
Spark操作算子本质-RDD的容错
spark模式
1.standalone
master 资源调度
worker
2.yarn
resourcemanager 资源调度
nodemanager
在一个集群中只能有一个资源调度,如果有两个资源调度的话,master和resourcemanager之间是不通信的,master分配某个资源,resourcemanager是不知道的
一个application对应一个driver,driver是用来分配任务的
流程示意
分布式文件系统(File system)加载数据集
transformations延迟执行 针对RDD的操作
Action触发执行(生成并提交job)

默认缓存策略是MEMORY_ONLY
OFF_HEAP:不使用Java堆内存,使用tachyon,但是需要spark和tachyon做对接(百度用的多,tachyon是国产)
转换算子 操作算子

transformations:延时执行,从一个RDD到另一个RDD
map:通过匿名函数将RDD中T类型的数据转换为U类型的数据
filter:通过匿名函数判断某个字段返回true/false,true保留,false过滤,RDD中的数据类型不变,但是有可能会被过滤掉
flatMap::通过匿名函数将RDD中的T类型的每条数据转换为类型为U的序列集合,先做一步Map操作,再做一步flat操作,压扁
sample:传一个Float进来,随机采样
groupByKey:按照key分组,把key相同的值聚合在一起,每个key对应一个序列集合,有个shuffle,上游的partition根据某些规则将数据分到下游不同的partition中去
reduceByKey:对键值对操作,消除重复的key,相邻元素依次进行操作,操作产生的结果类型不可变
union:合并两个RDD,RDD类型必须一致
join:传入两个键值对的RDD,将两个RDD相同key的value值整合到一起,并进行一个排列组合
cogroup:传入两个键值对的RDD,将两个RDD相同key的value放到两个序列集合中
crossProduct():将两个RDD封装为一个RDD,一个RDD的值为key,一个为value
mapValues:RDD中元素为键值对的,对每个元素进行操作,但是只对value进行操作。
sort:对某个值进行排序
partitionBy:可以传一个自定义的partitioner,如果RDD为键值对,就可以传一个新的partitioner进行分区
actions:立即执行,从RDD到最终结果
count():返回RDD中元素个数
collect():慎用,把RDD中的元素全部返回,放入序列集合中
reduce():把RDD中的元素依次进行操作,生成最后的一个值
lookup():根据传入的key在RDD中找对应的值,放入序列集合中
save():对操作结果做存储,比如存入HDFS,本地文件系统
transformations和actions的本质区别
transformations是从一个RDD到另一个RDD
actions是从一个RDD到最终结果
现象:碰到action操作就封装一个job执行

checkpoint
Lineage过长
对RDD做doCheckpoint()
SparkContext.setCheckPointDir() 需要设置磁盘路径,通常是HDFS中。
设置数据库路径
把RDD存到磁盘中去,即使内存中的缓存被清掉,也可以去磁盘中读取,计算效率更高。
坏处:占用DiskIO
如果RDD的代价特别大,除了普通缓存,还可以使用checkpoint,存入磁盘,RDD复用时会先找cache() persist(),再找checkpoint中的
Spark操作算子本质-RDD的容错的更多相关文章
- Spark RDD概念学习系列之Spark的算子的分类(十一)
Spark的算子的分类 从大方向来说,Spark 算子大致可以分为以下两类: 1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理. Transformat ...
- Spark编程模型及RDD操作
转载自:http://blog.csdn.net/liuwenbo0920/article/details/45243775 1. Spark中的基本概念 在Spark中,有下面的基本概念.Appli ...
- Spark性能调优-RDD算子调优篇(深度好文,面试常问,建议收藏)
RDD算子调优 不废话,直接进入正题! 1. RDD复用 在对RDD进行算子时,要避免相同的算子和计算逻辑之下对RDD进行重复的计算,如下图所示: 对上图中的RDD计算架构进行修改,得到如下图所示的优 ...
- Spark RDD概念学习系列之Spark的算子的作用(十四)
Spark的算子的作用 首先,关于spark算子的分类,详细见 http://www.cnblogs.com/zlslch/p/5723857.html 1.Transformation 变换/转换算 ...
- Spark RDD概念学习系列之RDD的容错机制(十七)
RDD的容错机制 RDD实现了基于Lineage的容错机制.RDD的转换关系,构成了compute chain,可以把这个compute chain认为是RDD之间演化的Lineage.在部分计算结果 ...
- Spark 键值对RDD操作
键值对的RDD操作与基本RDD操作一样,只是操作的元素由基本类型改为二元组. 概述 键值对RDD是Spark操作中最常用的RDD,它是很多程序的构成要素,因为他们提供了并行操作各个键或跨界点重新进行数 ...
- Spark(三)RDD与广播变量、累加器
一.RDD的概述 1.1 什么是RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可 ...
- Spark常用算子-KeyValue数据类型的算子
package com.test; import java.util.ArrayList; import java.util.List; import java.util.Map; import or ...
- spark第一篇:RDD Programming Guide
预览 在高层次上,每一个Spark应用(application)都包含一个驱动程序(driver program),该程序运行用户的主函数(main function),并在集群上执行各种并行操作. ...
随机推荐
- 查看/设置MySQL数据库的事务隔离级别
查看InnoDB存储引擎 系统级的隔离级别 和 会话级的隔离级别: mysql> select @@global.tx_isolation,@@tx_isolation; +---------- ...
- pods 遇到的问题
解决方法 : product -> sccheme ->pod 点击
- Java中的equals方法和自定义比较器
Object中的equals()方法默认是按地址比较,而不按内容进行比较, public boolean equals(Object obj) { return (this == obj); } 在S ...
- Unity3D - 性能优化之Draw Call
Unity3D - 性能优化之Draw Call 分类: Unity 3D2012-09-13 11:18 1002人阅读 评论(0) 收藏 举报 性能优化引擎测试脚本图形算法 Unity(或者说基本 ...
- python 求下个月的最后一天
[1]根据当前月求上个月.下个月的最后一天 (1)求当前月最后一天 (2)求前一个月的最后一天 (3)求下一个月的最后一天 学习示例与应用实例,代码如下: #!/usr/bin/python3 #-* ...
- SPSS统计功能与模块对照表
SPSS统计功能 - 应用速查表第一列为统计方法,中间为统计功能,最后一列为所在模块 1 ANOVA Models(单因素方差分析:简单因子) : 摘要 描述 方差 轮廓 - SPSS Base 2 ...
- Linux 随手记(文件操作)
新建文件夹 mkdir 文件夹名 新建文件 touch 文件名 重命名 mv 文件名 新文件名 将/a目录移动到/b下,并重命名为c mv /a /b/c 复制文件 cp [选项] 源文件或目录 目标 ...
- Android源码下载之----内核需要另外下载
用repo sync下载的android源码默认不包含kernel目录,需要自己另外下载. 下载命令:$ git clone https://android.googlesource.com/kern ...
- Linux中的关机
我是用普通用户登录,在终端下输入shutdown命令,结果显示 command not found.这就奇怪了,难道我的linux不支持这个命令?man了一下shutdown,大篇幅的说明告诉我,我的 ...
- python 基础 9.9 查询数据
#/usr/bin/python #-*- coding:utf-8 -*- #@Time :2017/11/24 4:21 #@Auther :liuzhenchuan #@File : ...