Spark版本定制班第2课-Frank.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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基于固定的时间间隔形成

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档