63、Spark Streaming:架构原理深度剖析
一、架构原理深度剖析

StreamingContext初始化时,会创建一些内部的关键组件,DStreamGraph,ReceiverTracker,JobGenerator,JobScheduler,DStreamGraph,
我们程序中定义很多DStream,中间用很多操作把这些DStream给串起来,这些DStream之间的依赖关系,就是所谓的DStreamGraph,
然后调用StreamingContext.start()方法; 调用StreamingContext.start()方法的时候,会去Spark集群中的某个Worker节点上的Executor,启动输入DStream(比如JavaReceiverDStream)的Receiver; StreamingContext的初始化,Receiver的启动,就完成了SparkStreaming应用程序的准备工作;
Receiver负责数据接收,Receiver从数据源读取数据,Receiver接收到数据之后,就会先将数据保存到它运行的Executor关联的BlockManager中,
除了会将数据保存在BlockManager中,还会发送一条数据的信息,到StreamingContext的ReceiverTracker中; JobGenerator--每隔我们定义的batch间隔,就会去ReceiverTracker中,获取一次时间间隔内的数据信息,然后将数据创建为一个RDD,每个batch对应一个RDD,
这个RDD,也就是DStream中的一个时间段对应的一个RDD; 根据DStreamGraph定义的算子和各个DStream之间的依赖关系,去生成一个job,job的初始RDD,就是刚才创建的batch对应的RDD,然后通过JobScheduler提交job;
63、Spark Streaming:架构原理深度剖析的更多相关文章
- Spark 以及 spark streaming 核心原理及实践
收录待用,修改转载已取得腾讯云授权 作者 | 蒋专 蒋专,现CDG事业群社交与效果广告部微信广告中心业务逻辑组员工,负责广告系统后台开发,2012年上海同济大学软件学院本科毕业,曾在百度凤巢工作三年, ...
- Spark Streaming 架构
图 1 Spark Streaming 架构图 组件介绍: Network Input Tracker : 通 过 接 收 器 接 收 流 数 据, 并 将 流 数 据 映 射 为 输 入DSt ...
- Spark Streaming的原理
Spark Streaming应用也是Spark应用,Spark Streaming生成的DStream最终也是会转化成RDD,然后进行RDD的计算,所以Spark Streaming最终的计算是RD ...
- Spark Streaming架构设计和运行机制总结
本期内容 : Spark Streaming中的架构设计和运行机制 Spark Streaming深度思考 Spark Streaming的本质就是在RDD基础之上加上Time ,由Time不断的运行 ...
- Mysql binlog应用场景与原理深度剖析
1 基于binlog的主从复制 Mysql 5.0以后,支持通过binary log(二进制日志)以支持主从复制.复制允许将来自一个MySQL数据库服务器(master) 的数据复制到一个或多个其他M ...
- Kafka架构和原理深度剖析
Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统.主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,并保证即使对TB级以上数据也能保证常数时间的访问性能 高吞吐率. ...
- 【转载】InstantRun 原理——深度剖析 AndroidStudio 2.0
一.前言 Android Studio 2.0开始支持 Instant Run 特性, 使得在开发过程中能快速将代码变化更新到设备上.之前,更新代码之后需要先编译一个完整的新Apk,卸载设备上已安装的 ...
- 小记--------spark内核架构原理分析
首先会将jar包上传到机器(服务器上) 1.在这台机器上会产生一个Application(也就是自己的spark程序) 2.然后通过spark-submit(shell) 提交程序 ...
- elasticsearch中filter执行原理深度剖析(bitset机制与caching机制)
(1)在倒排索引中查找搜索串,获取document list date来举例 word doc1 doc2 doc3 2017-01-01 * *2017-02-02 * *2017-03-03 ...
随机推荐
- java之mybatis之字段映射及多对一
1. 数据库中表的列名和实体类的属性名称不一致. 可以使用 resultMap来解决. <select id="findAll" resultMap="UserMa ...
- 2. matplotlib绘制散点图
与绘制直线图的唯一区别:plt.scatter # coding=utf-8 from matplotlib import pyplot as plt from matplotlib import f ...
- Http异常状态码解决方案。
415出现的原因:一般是传参的时候传的是json格式的参数,解决办法:先添加信息头管理器,然后在里面添加:(名称:Content-type)(值:application/json),这样就可以识别js ...
- 钻石diamaund外语
Whenever I fail as a father or husband... a toy and a diamond always works. I never worry about diet ...
- Installation of SAP on RAC with Oracle ASM(转)
https://blogs.sap.com/2016/03/17/installation-of-sap-on-rac-with-oracle-asm-part-3distributed-enviro ...
- k8s资源清单基础
资源清单介绍 创建资源的方法 apiserver仅接收JSON格式的资源定义 yaml格式提供配置清单 apiserver可自动把yaml转换成json格式数据 资源清单五个一级字段 1.ap ...
- Oracle 11g新特性direct path read引发的系统停运故障诊断处理
黎俊杰 | 2016-07-28 14:37 声明:部分表名为了脱敏而用XX代替 1.故障现象 (1)一个业务系统输入用户名与密码后无法进入首页,表现为一直在运行等待,运行缓慢 (2)整个系统无法正常 ...
- 【故障解决】enq: PS - contention
[故障解决]enq: PS - contention 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能, ...
- Jenkins使用过程中注意事项
jenkins自动部署注意事项: 安装jenkins https://blog.csdn.net/qq_37372007/article/details/81586751 1.当提示错误ERROR: ...
- Cloudera Manager 5.15.1忘记密码怎么破?
Cloudera Manager 5.15.1忘记密码怎么破? 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.登陆CM修改默认密码 1>.使用默认密码登陆CM界面 2&g ...