没有合适的资源?快使用搜索试试~ 我知道了~
首页Flink,Storm,Spark Streaming三种流框架的对比分析
资源详情
资源评论
资源推荐
Flink,Storm,Spark Streaming 三种流框架的对比
分析
:
:
:
1.Flink 架构及特性分析
是个相当早的项目,开始于 年,但只在最近才得到注意。 是原生的流处理
系统,提供 的 !。 也提供 ! 来像 " 一样进行批处理,但两者处理的基
础是完全不同的。 把批处理当作流处理中的一种特殊情况。在 中,所有的数据都
看作流,是一种很好的抽象,因为这更接近于现实世界。
1.1 基本架构
下面我们介绍下 的基本架构, 系统的架构与 " 类似,是一个基于 #$"
风格的架构。
当 集群启动后,首先会启动一个 %&#和一个或多个的 '#。由
提交任务给 %&#,%&# 再调度任务到各个 '#去执行,然后
'#将心跳和统计信息汇报给 %&#。'#之间以流的形式进行数据
的传输。上述三者均为独立的 %(#进程。
为提交 %&的客户端,可以是运行在任何机器上(与 %&#环境连通即可)。
提交 %&后,可以结束进程(" 的任务),也可以不结束并等待结果返回。
%&#主要负责调度 %&并协调 '做 )),职责上很像 "的 &。
从 处接收到 %&和 %*包等资源后,会生成优化后的执行计划,并以 '的单元调
度到各个 '#去执行。
'#在启动的时候就设置好了槽位数("),每个 能启动一个 ','为
线程。从 %&#处接收需要部署的 ',部署启动后,与自己的上游建立 +连接,
接收数据并处理。
可以看到 的任务调度是多线程模型,并且不同 %&' 混合在一个 '#进程
中。主要组件为 %&#,'#,,下面简要描述这三个组件的作用。
JobManager
%&# 是 系统的协调者,它负责接收 %&,调度组成 %& 的多个 ' 的执行。
同 时 , %&# 还 负 责 收 集 %& 的 状 态 信 息 , 并 管 理 集 群 中 从 节 点
'#。%&# 所负责的各项管理功能,它接收到并处理的事件主要包括:
*'#
在 集 群 启 动 的 时 候 , '# 会 向 %&# 注 册 , 如 果 注 册 成 功 , 则
%&# 会向 '# 回复消息 )-.*/。
"&%&
程 序 内 部 通 过 向 %&# 提 交 %& , 其 中 在 消 息 "&%& 中 以
%&0 形式描述了 %& 的基本信息。
)%&
请求取消一个 %& 的执行,)%& 消息中包含了 %& 的 !,如果成功则返回消息
)/")),失败则返回消息 )/。
1.'2)/"
'# 会向 %&# 请求更新 2)/0 中的 2)/(2 的状态信息,
更新成功则返回 。
*32!"
运 行 在 '# 上 面 的 ' , 请求 获 取 下 一个 要 处 理 的 输 入 " ,成 功 则 返 回
2!"。
%&".
2)/0 向 %&# 发送该消息,用来表示 %& 的状态发生的变化,例如:
*1!0、4!0、!!"5 等。
TaskManager
'# 也是一个 ),它是实际负责执行计算的 6,在其上执行 %& 的一
组 '。每个 '# 负责管理其所在节点上的资源信息,如内存、磁盘、网络,在
启动的时候将资源的状态向 %&# 汇报。'# 端可以分成两个阶段:
注册阶段
'# 会向 %&# 注册,发送 *'# 消息,等待 %&# 返回
)-.*/,然后 '# 就可以进行初始化过程。
可操作阶段
该 阶 段 '# 可 以 接 收 并 处 理 与 ' 有 关 的 消 息 , 如
"&' 、 )' 、 ' 。 如 果 '# 无 法 连 接 到 %&# , 这 是
'# 就失去了与 %&# 的联系,会自动进入“注册阶段”,只有完成注册才能
继续处理 ' 相关的消息。
Client
当用户提交一个 程序时,会首先创建一个 ,该 首先会对用户提交的
程序进行预处理,并提交到 集群中处理,所以 需要从用户提交的 程序配置
中 获 取 %&# 的 地 址 , 并 建 立 到 %&# 的 连 接 , 将 %& 提 交 给
%&#。 会将用户提交的 程序组装一个 %&0, 并且是以 %&0 的形
式提交的。一个 %&0 是一个 7-,它由多个 %&(2 组成的 0。其中,
一个 %&0 包含了 一个 程序的如 下信息:%&! 、%& 名称、配置信息 、一组
%&(2 等。
1.2 基于 Yarn 层面的架构
基于 层面的架构类似 模式,都是由 提交 到 *# 上面去运行,
然后 *# 分配第一个 ) 去运行 #,然后由 # 去负责资源的监督和管理。需要说明
的是, 的 模式更加类似 的 ) 模式,在 ) 模式中,. 将
作为 # 中的一个线程去运行,在 模式也是会将 %&# 启动在 )
里面 , 去做 个 . 类似 的 调度 和 分配 , 8*# 与 %&# 在同 一个
中,这样 # 可以知道 %&# 的地址,从而 # 可以申请 去
启动 '#。待 成功运行在 8* 集群上,8* 就可以提交
%& 到 %&#,并进行后续的映射、调度和计算处理。
1.3 组件栈
是一个分层架构的系统,每一层所包含的组件都提供了特定的抽象,用来服务于上层
组件。
Deployment 层
该层主要涉及了 的部署模式, 支持多种部署模式:本地、集群(".
8*)、云(0)。". 部署模式与 " 类似,这里,我们看一下
8* 的部署模式
Runme 层
*/ 层 提 供 了 支 持 计 算 的 全 部 核 心 实现 , 比 如 : 支持 分 布 式 " 处 理 、
%&0 到 2)/0 的映射、调度等等,为上层 ! 层提供基础服务。
API 层
! 层主要实现了面向无界 " 的流处理和面向 9) 的批处理 !,其中面向流处理对
应 " !,面向批处理对应 " !。
剩余32页未读,继续阅读
zexn113
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0