(版本定制)第10课:Spark Streaming源码解读
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本期内容:1、数据接收架构设计模式2、数据接收源码彻底研究1、Receiver接受数据的过程类似于MVC模式:Receiver,ReceiverSupervisor和Driver的关系相当于Model
千家信息网最后更新 2025年12月02日(版本定制)第10课:Spark Streaming源码解读
本期内容:
1、数据接收架构设计模式
2、数据接收源码彻底研究
1、Receiver接受数据的过程类似于MVC模式:
Receiver,ReceiverSupervisor和Driver的关系相当于Model,Control,View,也就是MVC。
Model就是Receiver,存储数据Control,就是ReceiverSupervisor,Driver是获得元数据,也就是View。

2、数据的位置信息会被封装到RDD里面。
3、Receiver接受数据,交给ReceiverSupervisor去存储数据。
4、ReceiverTracker是通过发送一个又一个的Job,每个Job只有一个Task,每个Task里面就只有一个ReceiverSupervisor,用这个函数启动每一个Receiver。
下面我们简单的看下Receiver启动流程,应用程序首先通过JobScheduler的start方法来启动receiverTracker的start方法:
def start(): Unit = synchronized {if (eventLoop != null) return // scheduler has already been startedlogDebug("Starting JobScheduler")eventLoop = new EventLoop[JobSchedulerEvent]("JobScheduler") {override protected def onReceive(event: JobSchedulerEvent): Unit = processEvent(event)override protected def onError(e: Throwable): Unit = reportError("Error in job scheduler", e) }eventLoop.start()// attach rate controllers of input streams to receive batch completion updatesfor { inputDStream <- ssc.graph.getInputStreams rateController <- inputDStream.rateController} ssc.addStreamingListener(rateController)listenerBus.start(ssc.sparkContext)receiverTracker = new ReceiverTracker(ssc)inputInfoTracker = new InputInfoTracker(ssc)receiverTracker.start() //receiver启动jobGenerator.start() logInfo("Started JobScheduler")}通过调用receiverTracker.start()方法来进行一系列的操作:
/** Start the endpoint and receiver execution thread. */def start(): Unit = synchronized {if (isTrackerStarted) {throw new SparkException("ReceiverTracker already started") }if (!receiverInputStreams.isEmpty) {endpoint = ssc.env.rpcEnv.setupEndpoint("ReceiverTracker", new ReceiverTrackerEndpoint(ssc.env.rpcEnv)) //Rpc消息通信,获取receiver的状态if (!skipReceiverLaunch) launchReceivers() //启动receiver logInfo("ReceiverTracker started")trackerState = Started}}下面通过画图简单的描述下Receiver启动的内部机制:
参考博客:http://blog.csdn.net/hanburgud/article/details/51471047
http://lqding.blog.51cto.com/9123978/1774426
数据
方法
也就是
只有
就是
模式
存储
源码
位置
信息
内容
函数
博客
应用程序
机制
架构
流程
消息
状态
程序
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
关于网络安全教育的图
服务器开机提示15秒后关机
互联网是第几次科技革命
dev数据库问题
网络安全生态 新境界
网络安全一年能挣多少钱
老人与海小说软件开发
网络安全宣传亲子图片
web界面无法定位服务器
软件开发是男孩多吗
四路串口服务器怎么收费
重庆vivo软件开发薪资
软件开发 质量管理 课程
宁波奉化超算服务器
赣州服务器多少钱
福建安卓软件开发价格
电商带货软件开发费用
中信集团网络安全公司
虹口区机电软件开发推荐厂家
中国移动网络技术类岗位职责
陕西网络安全靠人民
工厂里面做软件开发怎么样
数据库怎么用js连接
国外客户验厂对网络安全的要求
全国信贷联盟数据库是什么
网络安全硬件怎么挑选
数据库主数据文件增长量
加强网络安全 推教育信息
软件开发跟固态硬盘
杭州网络技术客服电话