RDD结构:Spark最核心模块和类

要玩转大数据,Spark是一款很好的通用的并行计算框架。而经常接触Spark的数据人都会对RDD有一定的了解。那么,RDD到底是什么呢?今天,一起和大圣众包威客平台(www.dashengzb.cn)深入探讨RDD的相关知识点!

概括|RDD的基本介绍

RDD的全称是Resilient Distributed Datasets,顾名思义即为容错的、并行的数据结构。RDD可以让用户将数据显式地存储到磁盘和内存中,并能控制数据的分区。同时,RDD还提供了一组丰富的操作来控制这些数据。RDD一般包含4个部分,分别是:关于“血统”的信息,源码中的dependencies变量;源数据分割后的数据块,源代码中的splits变量;一些关于如何分块和数据存放位置的元信息,如源码中的partitioner和preferred Locations 0;一个计算函数(该RDD如何通过父RDD计算得到),源码中的iterator(split)和compute函数。

另外,RDD有几个核心概念不容忽视:Client——客户端进程,负责提交作业到Master;Master——Standalone模式中的主控节点,负责接收Client提交的作业、管理Worker,并命令Worker启动分配Driver的资源和启动Executor的资源;Worker——Standalone模式中slave节点上的守护进程,负责管理本节点的资源,定期向Master 汇报心跳、接收Master的命令,启动Driver和Executor;Driver——一个Spark作业运行时包括一个Driver进程,也是作业的主进程,负责作业的解析、生成Stage并调度Task到Executor上,其中包括DAG Scheduler、Task Scheduler;Executor——真正执行作业的地方,一个集群一般包含多个Executor,每个Executor接收Driver的命令Launch Task,一个Executor可以执行一到多个Task。

那么,简单而言,RDD有什么特点呢?我们都知道,它是在集群节点上的不可变的、已分区的集合对象,并通过并行转换的方式来创建map、filter、join等等。RDD可以控制存储级别(内存、磁盘等)来进行重用。失败能够自动重建的RDD,还必须是可序列化,而且是静态类型的。还有很值得说明的一点是,RDD中将依赖的两种类型,分别是窄依赖(narrow dependencies)和宽依赖(wide dependencies)。窄依赖是指父RDD的每个分区都只被子RDD的一个分区所使用。相应的,宽依赖是指父RDD的分区被多个子RDD的分区所依赖。例如,map就是一种窄依赖,而join则会导致宽依赖。这种依赖关系分类的特性是,首先,窄依赖可以在某个计算节点上直接通过计算父RDD的某块数据,计算得到子RDD对应的某块数据;其次,数据丢失时,对于窄依赖只需要重新计算丢失的那一块数据来恢复。

辨析|RDD 与 DSM的相异之处

在理论理解上,很多人会混淆RDD和DSM。众所周知,RDD只能通过粗粒度转换来创建,而DSM(Distributed Shared Memory)则允许对每个内存位置上进行数据的读与写。在这种定义下,DSM不仅包括了传统的共享内存系统,也包括了像提供了共享 DHT(distributed hash table)的 Piccolo 以及分布式数据库等。与DSM 相比较,RDD拥有4大优势,分别是高效的容错机制、结点落后问题的缓和(mitigate straggler) 、可批量操作,以及优雅降级(degrade gracefully)。综上,RDD 与 DSM还是有很多相异之处的。

实操|RDD之两种类型操作

看了以上对RDD的介绍后,很想拥有这款强大的数据结构吧。怎样才能获得呢?可以通过以下几种方法:从如HDFS的共享文件系统中获取;改变现有RDD的之久性,毕竟RDD是懒散短暂的;转换已存在的RDD;将已存在的scala集合(只要是Seq对象)并行化 ,通过调用Spark Context的parallelize方法实现。

在实际操作上,怎样去利用RDD呢?事实上,RDD提供了2种类型的操作,分别是transformation和action。Transformation意思是获取一个新的RDD,当然获取的方式有很多,无论是从数据源生成一个新的RDD,或是从RDD中生成一个新的RDD等方法都适用。而Action则是得到一个值,或者一个结果,例如直接将RDD cache到内存中去,它不会生成新的RDD,而只是将RDD上某项操作的结果返回给程序。值得注意的是,所有的transformation采用的都是懒策略,就是如果只是将transformation提交,那么RDD是不会执行计算(记录lineage)的,计算只有在action被提交的时候才会被触发。

汇总|RDD的常见术语

在执行RDD时,会遇到不少专业词汇,今天一次性看看有哪些:

RDD——Resilient Distributed Datasets的简称,即弹性分布式数据集,是Spark最核心的模块和类。

DAG Scheduler——实现将Spark作业分解成一到多个Stage,每个Stage根据RDD的Partition个数决定Task的个数,然后生成相应的Task set放到Task Scheduler中。

Task Scheduler——实现Task分配到Executor上执行。

Task——运行在Executor上的工作单元。

Stage——每个Job会被拆分很多组任务(task),每组任务被称为Stage,也称Task Set。

Job——Spark Context提交的具体Action操作,常和Action对应。

Data Frame——带有Schema信息的RDD,主要是对结构化数据的高度抽象。

Data Set——结合了Data Frame和RDD两者的优势,既允许用户很方便地操作领域对象,又具有SQL执行引擎的高效表现。

以上汇总的是最常见的执行RDD时遇到的专业术语,当然还有很多常见术语,在此不一一列出。

DT时代,Spark作为玩转大数据的常用工具,熟悉它最核心的模块和类——RDD,定能为你的工作增添不少方便。

原文地址:http://www.dashengzb.cn/articles/a-357.html

(更多大数据与商业智能领域干货、或电子书,可添加个人微信号(dashenghuaer))

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容