千家信息网

RDD的知识点有哪些

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,今天小编给大家分享一下RDD的知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下
千家信息网最后更新 2025年01月24日RDD的知识点有哪些

今天小编给大家分享一下RDD的知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

Spark 编程模型是弹性分布式数据集(Resilient Distributed Dataset. RDD),它是 MapReduce 模型的扩展和延伸,但它解决了 MapReduce的缺陷:在并行计算阶段高效地进行数据共享。运用高效的数据共享概念和类似于MapReduce的操作方式,使得并行计算能够高效地进行,并可以在特定的系统中得到关键的优化。

相比以前集群容错处理模型,如MapReduce,他们将计算转换为一个有向无环图 (DAG)的任务集合。这使在这些模型中能够有效地恢复DAG中故障和慢节点执行的任务,但是这些模型中除了文件系统外没有提供其他的存储方式,这就导致了在网络上进行频繁的数据复制而造成I/O压力。

由于RDD提供一种基于粗粒度变换(如map、filter和join等)的接口, 该接口会将相同的操作应用到多个数据集上,这就使得它们可以记录创建数据集的"血统" (Lineage),而不需要存储真正的数据,从而达到高效的容错性。

当某个RDD分区丢失的时候, RDD记录有足够的信息来重新计算,而且只需要计算该分区,这样丢失的数据可以很快地恢复, 不需要昂贵的复制代价。

基于RDD机制实现了多类模型计算,包括多个现有的集群编程模式。在这些模型中,RDD 不仅在性能方面达到了之前的系统水平,也带来了现有系统所缺少的新特性,如容错性、慢节 点执行和弹性资源分配等。这些模型包括以下几方面的内容。

(1) 迭代计算:目前最常见的工作方式,比如应用于图处理、数值优化以及机器学习中的 算法。RDD可以支持各类型模型,包括Pregel、MapReduce、GraphLab和PowerGraph模型。

(2) 交互式SQL査询:在MapReduce集群中大部分需求是执行SQL查询,而MapReduce 相对并行数据库在交互式查询有很大的不足。而Spark的RDD不仅拥有很多常见数据库引擎的 特性,达到可观的性能,而且在Spark SQL中提供完善的容错机制,能够在短查询和长查询中 很好地处理故障和慢节点。

(3) MapReduceRDD:通过提供MapReduce的超集,能够高效地执行MapReduce程序, 同样也可以如DryadLINQ这样常见的DAG数据流的应用。

(4) 流式数据处理:流式数据处理已经在数据库和系统领域进行了很长时间的研究,但是大规模流式数据处理仍是一项挑战。当前的模型没有解决在大规模集群中频繁岀现的慢节点的 问题,同时对故障解决办法有限,需要大量的复制或浪费很长的恢复时间。为了恢复一个丢失的节点,当前的系统需要保存每一个操作的两个副本,或通过一系列耗费大量开销的串行处理 对故障点之前的数据进行重新处理。

Spark提出了离散数据流(D-Streams)来解决这样的问题,D-Streams把流式计算的执行当作一系列短而确定的批量计算的序列,并将状态保存在RDD中。D-Streams根据相关RDD的 依赖关系图进行并行化恢复,可以达到快速故障恢复,避免了数据复制。

另外通过推测执行来支持对Straggler迁移执行,例如,对慢任务运行经过推测的备份副本。尽管D-Streams将计算 转换为许多不相关联的作业来运行而增加延迟,但这种延迟在D-Streams集群处理中只耗费次 秒级时间。

RDD还能够支持一些现有系统不能表示的新应用。例如,许多数据流应用程序还需要加入 历史数据的信息;通过使用RDD可以在同一程序中同时使用批处理和流式处理,这样来实现 所有模型中数据共享和容错恢复;同样地,流式应用的操作者常常需要在数据流的状态上执行及时查询。一般来说,每一个批处理应用常常需要整合多个处理类型,比如,一个应用可能需 要使用SQL提取数据,在数据集上训练一个机器学习模型,然后对这个模型进行查询。

由于计算的大部分时间花在系统之间共享数据的分布式文件系统I/O的开销上,因此使用当前多个系 统组合而成的工作流效率非常低下。而使用一个基于RDD机制的系统,这些计算可以在同一 个引擎中紧接着执行,不需要额外的I/O操作,处理效率大大提高。

Spark编程中开发者需要编写一个驱动程序(Driver Program)来连接至工作进程(Worker)。驱动程序定义一个或多个RDD以及相关行动操作,驱动程序同时记录RDD的 继承关系,即"血统"。而工作进程(Worker)是一直运行的进程,它将经过一系列操作后的 RDD分区数据保存在内存中。

Spark中的操作大致可以分为四类操作,分别为创建操作、转换操作、控制操作和行为操作

  • 创建操作(Creation Operation):用于RDD创建工作。RDD创建只有两种方法,一种 是来自于内存集合和外部存储系统,另一种是通过转换操作生成的RDD。

  • 转换操作(Transformation Operation):将RDD通过一定的操作变换成新的RDD,比 如HadoopRDD可以使用map操作变换为MappedRDD, RDD的转换操作是惰性操作, 它只是定义了一个新的RDDs,并没有立即执行。

  • 控制操作(Control Operation):进行RDD持久化,可以让RDD按不同的存储策略保 存在磁盘或者内存中,比如cache接口默认将RDD缓存在内存中。

  • 行动操作(Action Operation):能够触发Spark运行的操作,例如,对RDD进行collect 就是行动操作。Spark中行动操作分为两类,一类的操作结果变成Scala集合或者变量, 另一类将RDD保存到外部文件系统或者数据库中。

以上就是"RDD的知识点有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

数据 模型 系统 处理 应用 知识 程序 查询 多个 故障 集群 容错 工作 内存 数据库 数据流 篇文章 节点 存储 行动 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 触发器的使用会影响数据库的结构 河南久来米网络技术服务有限公司电话 青海企业级服务器价格多少 济南正规的服务器代理哪家好 杭州天网络技术有限公司 微端服务器设置客户端 福建创新网络技术服务供应商家 服务器虚拟化之计算资源管理 数据库 优化方式 软件开发五月份好找工作吗 医院网络安全领导机构职能 每次打开cad都跳出连接服务器 sql备份数据库影响使用吗 饥荒专用服务器双云服好处 流媒体服务器带宽 银行的网络安全管理 数据库怎么改变会计科目 建立arcgis数据库 贝腾创业总动员服务器地址 女生网络安全大赛 图数据库中文文档 北京软件开发薪水 数据库连接使用ssh 楼宇安全与网络安全相似之处 数据库的技术标识 如何远程到服务器 简述网络安全立法的意义 公益林调整数据库建库标准 成都天府通软件开发待遇 GM工具用什么软件开发
0