网站首页 > 技术文章 正文
Spark Core
transfomation 转换算子
action 缓存算子
在整个过程中RDD在不断变换
一旦中间环节出错,也可以从前面的RDD重新构建出RDD
RDD操作
什么是RDD
RDD(Resilient Distributed Datasets)[1] ,弹性分布式数据集, 是分布式内存的一个抽象概念,RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,只能通过在其他RDD执行确定的转换操作(如map、join和group by)而创建,然而这些限制使得实现容错的开销很低。对开发者而言,RDD可以看作是Spark的一个对象,它本身运行于内存中,如读文件是一个RDD,对文件计算是一个RDD,结果集也是一个RDD ,不同的分片、 数据之间的依赖 、key-value类型的map数据都可以看做RDD。
Resilient distributed datasets 弹性分布式数据集。是spark的核心,是分布式只读且分区的集合对象。这些集合是弹性的,如果数据丢失一部分,则可以对它进行重建。
RDD是只读的
RDD是分区记录的集合
RDD是容错的--lineage
RDD是高效的
RDD不需要物化
RDD可以缓存 --可以指定缓存级别
RDD特性
RDD接口
RDD可以理解为就是一组partition
调优:
避免数据倾斜
数据本地化
RDD-partition
partiton个数默认数值是这个程序所分配到的资源的cpu核的个数。
RDD-preferredLocations
返回RDD的partition的数据块信息,如果一个数据库有多个备份,返回所有备份的location信息。
作用:spark在进行任务调度尽可能根据block的地址做本地计算,避免网络开销。
RDD依赖
窄依赖
每个父RDD的分区至多被一个子RDD的分区使用,即为OneToOneDependencies
宽依赖
多个子RDD的分区依赖个父RDD的分区。
RDD遇到宽依赖时会shuffle,以shuffle为边界划分stage
RDD操作算子
transformaton
惰性求值
RDD的转化操作都是惰性求值的,这意味着在被调行动操作之前不会开始计算。
惰性求值的好处
Spark使用惰性求值可以把一些操作合并到一起来减少计算数据的步骤。
Hadoop MR的系统中,开发者常常划分大量的时间考虑如何把操作组合到一起,以减少MR并行周期数。
RDD的转化操作是返回新的RDD操作。
我们不应该把RDD看作存放特定数据的数据集,而最好把每个RDD当做我们通过转化操作构建处理的,记录如何计算数据的指令列表。
缓存操作
缓存算子:对计算过程中要多次使用的RDD进行缓存,可以减少磁盘读写,减少重新构建RDD,加快程序的运行
checkpoint操作
将RDD持久化到hdfs中,与persisit操作不同的是checkpoint操作会切断此RDD之前的依赖关系,而persist依然保留RDD的依赖关系。
action操作
Pair RDD转换
Pair RDD可以使用所有标准RDD的操作,还提供了特有的转换操作。
输入
共享变量
猜你喜欢
- 2024-10-12 大佬用10小时就把Spark讲完了,附6大技术文档
- 2024-10-12 浅析图数据库 Nebula Graph 数据导入工具——Spark Writer
- 2024-10-12 Spark Streaming 和 Flink 谁是数据开发者的最爱?
- 2024-10-12 分享几点 Spark Streaming 调优实践经验
- 2024-10-12 大数据学习之计算天下——SPARK的那些事
- 2024-10-12 第二篇|Spark core编程指南 spark编程软件
- 2024-10-12 Spark计算引擎 spark是基于什么计算引擎
- 2024-10-12 Spark Shuffle机制 sparkshuffle原理
- 2024-10-12 一文带你了解SparkStreaming窗口函数
- 2024-10-12 深度预警:Spark运行原理 简述spark的运行架构和原理
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)