加入收藏 | 设为首页 | 会员中心 | 我要投稿 怀化站长网 (https://www.0745zz.cn/)- 语音技术、云资源管理、物联设备、云计算、决策智能!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

企业应关注的新兴物联网趋势

发布时间:2021-02-12 19:16:19 所属栏目:传媒 来源:互联网
导读:05 容错 传统分布式系统的容错方案有据复制和恢复日志两种方案。对于以数据为中心的系统而言,这两种方式都非常昂贵,因为它需要跨集群网络复制大量数据,而网络带宽的速度远远低于内存访问的速度。 RDD天生是支持容错的。首先,它自身是一个不变的数据集,

05 容错

传统分布式系统的容错方案有据复制和恢复日志两种方案。对于以数据为中心的系统而言,这两种方式都非常昂贵,因为它需要跨集群网络复制大量数据,而网络带宽的速度远远低于内存访问的速度。

RDD天生是支持容错的。首先,它自身是一个不变的数据集,其次,Spark使用DAG作为其执行模型,所以它能够通过RDD的依赖特性记住一系列操作生成一张DAG图。因此当执行的任务失败时,Spark只需根据DAG图进行重新计算即可实现容错机制。由于无须采用复制的方式支持容错,Spark很好地降低了跨网络的数据传输成本。

06 集群模式

Spark的应用以一组独立进程的形式运行在一个集群之上,由主程序中的SparkContext对象进行协调(也被称为driver程序)。Spark目前支持三种集群运行方式。

具体来说,Spark既可以通过standlone模式独立运行,也可以运行在Mesos或者YARN之上。

如图2-17所示,一旦SparkContext连接到集群,Spark首先会从集群的节点中获得一些executor进程,这些进程会用来执行我们程序中的计算和存储逻辑,接着它会通过jar包的形式分发我们的程序代码到各个executor进程。最后,SparkContext会分派任务到各executor进程进行执行。

 

04 依赖

RDD作为数据结构,本质上是一个只读的分区记录集合。一个RDD可以包含多个分区,每个分区是一个数据片段。

RDD可以相互依赖。如果父RDD的每个分区最多被一个子RDD的分区使用,则称之为窄依赖;若多个子RDD分区依赖一个父RDD的分区,则称之为宽依赖。不同的操作依据其特性,可能会产生不同的依赖。例如map操作会产生窄依赖,而join操作则产生宽依赖。

Spark之所以将依赖分为两种,基于两点原因。首先,窄依赖支持在同单个集群上以管道的形式式执,例如在执行了map后,紧接着执行filter。相反,宽依赖需要所有的父RDD数据都可用并通过shuffle动作才可继续执行。

其次,窄依赖的失败恢复更加高效,因为它只需要重新计算丢失的父分区,并且这些计算可以并行的在不同节点同时进行。与此相反,在宽依赖的继承关系中,单个失败的节点可能导致一个RDD的所有先祖RDD中的一些分区丢失,导致计算的重新执行。如图2-16所示,说明了窄依赖与宽依赖之间的区别。

 

Spark通过统一的数据模型和编程模型,构造出了SQL查询、流计算、机器学习和图计算等多个分支库。

02 数据模型

RDD是弹性分布式数据集(Resilient Distributed Datasets)的缩写,它是MapReduce模型的扩展和延伸。Spark之所以能够同时支撑大数据的多个领域,在很大程度上是依靠了RDD的能力。

虽然批处理、流计算、图计算和机器学习这些计算场景之间初看起来风马牛不相及,但是它们都存在一个共同的需求,那就是在并行计算阶段能够高效的共享数据。

RDD的设计者们洞穿了这一现象,于是通过高效的数据共享概念和类似MapReduce的操作设计了RDD,使得它能模拟迭代式算法、关系查询、MapReduce和流式处理等多种编程模型。

同时它也是一个可容错的、可并行的数据结构,可以让用户指定将数据存储到磁盘和内存中,并能控制数据的分区。同时它还提供了一些高效的编程接口操作数据集。

03 编程模型和作业调度

Spark将RDD的操作分为两类:转换(transformation)与行动(action)。

转换操作是一种惰性操作,它只会定义新的RDD,而不会立即执行。而行动操作则是立即执行计算,它要么返回结果给Driver进程,或是将结果输出到外部存储。常见转换操作如map、flatMap、filter等,常见行动操作如count、collect等。

当用户对一个RDD执行了行动操作之后,调度器会根据RDD的依赖关系生成一个DAG(有向无环图)图来执行程序。DAG由若干个stage组成,每个stage内都包含多个连续的窄依赖。而各个stage之间则是宽依赖。如图2-15所示,实线方框代表的是RDD。方框内的矩形代表分区,若分区已在内存中保存则用黑色表示。


(编辑:怀化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读