论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
大数据
›
数据仓库与分析
›
大数据-83 Spark 集群 RDD编程简介 RDD特点 Spark编程模 ...
大数据-83 Spark 集群 RDD编程简介 RDD特点 Spark编程模子介绍 ...
用户云卷云舒
金牌会员
|
2024-8-20 15:13:21
|
显示全部楼层
|
阅读模式
楼主
主题
927
|
帖子
927
|
积分
2781
点一下关注吧!!!非常感谢!!持续更新!!!
目前已经更新到了:
Hadoop(已更完)
HDFS(已更完)
MapReduce(已更完)
Hive(已更完)
Flume(已更完)
Sqoop(已更完)
Zookeeper(已更完)
HBase(已更完)
Redis (已更完)
Kafka(已更完)
Spark(正在更新!)
章节内容
上节我们完成了如下的内容:
Hadoop 集群启动
Spark 集群启动
h121 h122 h123 节点启动
集群启动测试 SparkShell
什么是RDD
RDD是Spark的基石,是实现Spark数据处理的核心现象。
RDD是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的聚集。
RDD(Resilient Distributed Dataset)是Spark中的核心概念,它是一个容错、可以并行实行的分布式数据集。
它有如下的5个特性:
一个分区的列表
一个计算函数compute,对每个分区进行计算
对其他RDDs的依靠(宽依靠、窄依靠)列表
对Key-Value RDDs来说,存在一个分区器(Partitioner)【可选】
对每个分区由一个优先位置的列表【可选】
RDD 特点介绍
不可变性(Immutability)
RDD一旦创建,就不能被修改。每次对RDD进行利用(比方过滤、映射等)都会产生一个新的RDD。这种不可变性简化了并行处理,因为无需担心多个计算节点间的数据竞争。
分布式(Distributed)
RDD的数据分布在多个节点上,这使得Spark可以或许处理大规模的数据集。RDD的每个分区都可以在差别的节点上独立处理。
容错性(Fault Tolerance)
RDD通过“血统”(Lineage)记录其天生方式。假如RDD的某些分区在计算过程中丢失,可以根据这些血统信息重新计算丢失的数据。通过这种方式,RDD可以或许在节点故障时自动恢复。
惰性求值(Lazy Evaluation)
RDD的利用被分为两类:转换利用(Transformations) 和 行动利用(Actions)。转换利用是惰性求值的,即不会立刻实行,而是比及遇到行动利用时才触发计算。这样做的利益是可以通过合并多个转换利用来优化计算过程,减少不须要的中心计算。
范例安全(Type Safety)
在Scala语言中,RDD是范例安全的,意味着你可以在编译时捕获范例错误,这对开发者来说非常有帮助。
并行利用(Parallel Operation)
RDD的每个分区可以独立进行处理,允许多线程或多节点并行实行,充实利用集群的计算资源。
缓存与长期化(Caching and Persistence)
可以将RDD缓存或长期化到内存或磁盘中,以便在多次使用时避免重复计算,从而提高性能。
丰富的API
RDD提供了丰富的API支持各种利用,包罗map、filter、reduceByKey、groupBy、join等,可以或许满足大部门分布式数据处理的需求。
RDD的特点
分区
RDD逻辑上是分区的,每个分区的数据是抽象存在的,计算的时候通过一个compute函数得到每个分区的数据。假如RDD是通过己有的文件系统构建,则compute函数是读取指定文件系统中的数据,假如RDD是通过其他RDD转换而来,则compute函数是实行转换逻辑将其他RDD的数据进行转换。
只读
RDD是只读的,要想改变RDD中的数据,只能在现有的RDD基础上创建新的RDD。
一个RDD转换为另一个RDD,通过丰富的算子(map filter union join reduceByKey等等)实现,不再像MR那样写Map和Reduce了。
RDD的利用算子包罗两类:
Transformation:用来对RDD进行转化,延迟实行(Lazy)
Action:用来出发RDD的计算,得到相关计算结果或者将RDD生存的文件系统中
依靠
RDDs通过利用算子进行转换,转换得到的新RDD包含了从其他RDDs衍生出所必须得信息,RDDs之间维护着这种学院关系(lineage),也称为依靠。
窄依靠:RDDs之间的分区是一一对应的(1对1 或者 n对1)
宽依靠:子RDD每个分区与父RDD的每个分区都有关,是多对多的关系
缓存
可以控制存储级别(内存、磁盘等)来进行缓存
假如在应用程序中多次使用同一个RDD,可以将RDD缓存起来,该RDD只有在第一次计算的时候会根据血缘关系得到分区的数据,在后续其他地方用到该RDD的时候,会直接从缓存取而不用再根据血缘计算,加速后期的重用。
CheckPoint
虽然RDD的血缘关系天然的可以实现容错,当RDD的某个分区失败或者丢失,可以通过血缘关系来进行重修。
但是对于长时间迭代型的应用来说,随着迭代的进行,RDDs之间的血缘关系会越来越长,一旦在后续迭代的过程中出错,则需要 通过非常长的血缘关系去重修,影响性能。
RDD支持CheckPoint将数据生存到长期化的存储中,这样就可以堵截之前的血缘关系,因为CheckPoint后的RDD不需要知道它的父RDDs了,可以直接从CheckPoint拿到数据。
Spark编程模子
RDD表示数据对象
通过对象上的方法调用来对RDD进行转换
终极表现结果或者将结果输出到外部数据源
RDD转换算子称为Transformation是Lazy的(延迟实行)
只有遇到 Action算子,才会实行RDD的转换利用
假如要使用Spark,就需要编写Driver程序,它被提交到集群运行。
Driver中界说了一个或多个RDD,并调用RDD上的各种算子
Worker则实行RDD分区计算任务
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
用户云卷云舒
金牌会员
这个人很懒什么都没写!
楼主热帖
更新:)
更新:)
期末作业C#实现学生宿舍管理系统 ...
Nginx 配置和性能调优
揭秘爆款的小程序,为何一黑到底 ...
北京动点元宇宙外包团队:微软入局工业 ...
IOS开发
SmartIDE v0.1.16 已经发布 - 支持阿里 ...
Postgres14.4(Docker安装)
Docker 搭建FastDFS文件系统
标签云
存储
服务器
浏览过的版块
Java
快速回复
返回顶部
返回列表