- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Spark版本定制班第2课-Frank
Spark源码定制班第2课
PAGE6 / NUMPAGES6
第2课:通过案例对透彻理解三板斧之二:解密SparkStreaming运行机制和架构进阶之运行机制和架构
作者:杭州-Frank
本期导读:
解密Spark Streaming运行机制
解密Spark Streaming架构
回顾总结上节课的内容
上节课我们采用了降维的方式查看了整个Spark Streaming的大概运行的过程,再次强调,Spark Streaming其实是构建在Spark core之上的一个应用程序,Spark Streaming涉及多个job交叉配合,里面涉及到了Spark的所有的核心组件,如果精通了Spark Streamin,那么可以说就精通了整个Spark。
一切不能进行实时流处理的数据都是无效的数据。在流处理时代,Spark Streaming有着强大吸引力,加之Spark的生态系统,Streaming可以方便调用其他的诸如SQL,MLlib等强大框架。Spark Streaming运行时与其说是Spark Core上的一个流式处理框架,不如说是Spark Core上的一个最复杂的应用程序。
Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大数据流式数据的能力,是Spark 核心api的扩展。可以实现高吞吐的,可扩展的,高容错的,可伸缩的实时流处理框架。
Spark 的各个子框架都是基于Spark core的。Spark Streaming在内部的处理机制是接受实时流的数据,并根据一定的时间间隔分成一批一批的数据,然后通过Spark engine处理这些批数据,最后得到处理后的一批一批的数据。对应的批数据,在Spark内核对应RDD,在Spark streaming中对应DStream ,一个DStream相当于RDD的模板,对应一组RDD(RDD的一个序列)。
通俗点理解就是,在数据分成一批一批后,形成一个队列,然后Spark引擎从该队列中依次一个一个的取出批数据,把批数据封装成一个DStream,因为DStream是RDD的模板,是RDD的一个逻辑级别的抽象,所以实质上是把数据封装成为物理级别的RDD。
解密Spark Streaming运行机制
我们来看一下上节课 HYPERLINK /base/10 \o Apache Spark知识库 \t _blank Spark?Streaming程序运行留下的信息:
这个程序在不知疲倦地循环运行。即使没有接收到新数据,日志中也不断循环打印着JobScheduler、BlockManager、MapPartitionsRDD、ShuffledRDD等等信息。这些都是Spark Core相关的信息。其循环的依据,也就是时间这个维度。
RDD之间的具体依赖,构成了空间维度。DStream就是在RDD的基础上增加了时间维度。所以整个Spark Streaming就是时空维度。
Spark Streaming内部处理机制流程如下图所示:
Spark Core处理的每一个步骤都是基于RDD的,并且RDD之间有依赖关系。上图中,RDD的DAG显示的是有3个Action,会触发3个Job,RDD自下向上依赖,RDD产生Job就会具体的执行。
从DSteam Graph中可以看到,DStream的逻辑与RDD基本一致,它就是在RDD的基础上加上了时间的依赖。RDD的DAG又可以叫空间维度,也就是说整个Spark Streaming多了一个时间维度,也就构成了时空维度。
解密Spark Streaming架构
从这个角度来讲,可以将Spark Streaming放在坐标系中。其中Y轴就是对RDD的操作,RDD的依赖关系构成了整个job的逻辑,而X轴就是时间。随着时间的流逝,固定的时间间隔(Batch Interval)就会生成一个job实例,进而在集群中运行。
X轴,时间维度:按照特定时间间隔不断生成Job的实例,并在集群送过来运行。
Y轴,空间维度:代表是RDD的依赖关系,构成具体的处理步骤,是用Dstream Graph来表示的。
处理逻辑:随着时间的流逝,Dstream Graph不断生成以RDD Graph也就是DAG的方式产生Job,并通过JobSchedule的线程池的方式提交给Spark Cluster的线程池的方式提交给Spark Cluster不断的执行。
对于Spark Streaming来说,当不同的数据来源的数据流进来的时候,基于固定的时间间隔,会形成一系列固定不变的数据集或event集合(例如来自flume和kafka)。而这正好与RDD基于固定的数据集不谋而合,事实上,由DStream基于固定的时间间隔形成
您可能关注的文档
最近下载
- 小学英语自然拼读 77页.pdf
- 2025贵州盐业(集团)黔东南有限责任公司招聘考试备考试题及答案解析.docx VIP
- 《小学阶段传统文化融入语文教学的有效路径探究》教学研究课题报告.docx
- 2024届高三复习备考工作计划暨备考策略.pdf VIP
- 入党积极分子入党答辩1.pptx VIP
- SEMI-F047-000-0706-en电压暂升暂降标准.pdf VIP
- 2025年成人高考政治考试大纲.docx VIP
- 2025年中国聚氨酯混炼胶数据监测研究报告.docx
- 在excel中绘制水位~库容~面积的图表.xls VIP
- 2025年成人高考高起本(历史地理综合)新版真题卷(附详细解析).pdf VIP
文档评论(0)