flink

产生背景

实时流数据的处理需求变多
需要优秀的流处理引擎:
实现低延迟,高吞吐,容错性,窗口时间语义化,编程效率高与运行效果好。

之前的工具

sotrm

优点:低延迟 缺点:其他要求较差

spark streaming

优点:高吞吐量,容错性高 缺点:其他要求较差

flink介绍

功能:

用在要求严格的实时流处理场景。

实现:

数据处理过程抽象,source->Transform->Sink.。

架构设计

在这里插入图片描述

分层说明

物理层布署层-deploy层:

负责解决flink的部署模式问题。通过这层可以选择不同的部署平台。

Runtime核心层:

核心实现层,给上层接口提供服务。
将DataStream和DataSet转成统一的可执行的Task Operator,达到在流式计算引擎下同时处理
批量计算和流式计算的目的。

API&Libraries层

负责更好的开发用户体验。
提供了流计算和批处理的接口。(Gelly库,FlinkML机器学习库)
API包括DataStreamAPI和DataSetAPI。

运行模式

本地运行模式

用于测试。

standalone模式

纯flink计算场景,商用场景极少。

集群运行模式

运行在yarn或者mesos的等。
session模式
集群生命周期:从客户端连接到集群到手动停止session为止。
资源隔离:TaskManager slot 由 ResourceManager 在提交作业时分配,
并在作业完成时释放。局限在于在出现jobManager错误时,会影响其他作业。
工作流程特征说明:多个flinkJob向一个flinkSession提交作业,并由其管理。
per-job模式
集群生命周期:yarn为提交的作业启动集群 --客户端从集群请求资源启动jobManager --把作业给dispatcher
–惰性分配TaskManager --作业完成则拆除flinkjob。
资源隔离:Jobmanager中的错误只影响一个作业。
工作流程特征说明:多个flinkJob向一个yarn生成的flinkSession提交作业,由
作业所属的FlinkSession管理自己的Flink作业。
application模式
集群生命周期:提交jar包到hdfs --jobManager拉取所需资源 --由运行jobManager的集群入口节点
机器调用main方法提取JobGarph,作为解析提供客户端和集群的交互,到作业结束。
资源隔离:ResourceManager和Diapatcher作用于单个的flink程序。
工作流程特征说明:将各个环节更进一步进行专用化处理,
相当于每个FlinkJob都有一套专用的服务角色进程。

本地布署模式:demo、代码测试场景。
Session模式:集群资源充分、频繁任务提交、小作业居多、实时性要求高的场景。
Per-Job模式:作业少、大作业、实时性要求低的场景。
Application模式:实时性要求不太高、安全性有一定要求均可以使用,普遍适用性最强。

运行流程

在这里插入图片描述

角色说明

进程:JobManager和TaskManager。
JobManager:决定task调度,失败反馈,恢复失败等。
ResourceManager:提供、回收、分配 - 它管理 task slots,这是 Flink 集群中资源调度的最小单位。
Dispatcher:REST接口,提交flink应用程序执行,给提交的作业启动新JobMaster。
JobMaster:管理单个JobGraph的执行。
TaskManager:缓存交换数据流,至少有一个,最小单位时task slot
client:准备数据流发送给JobManager。
actor system:消息传递的中间件。

yarn模式提交任务流程

![图片.png](https://img-blog.csdnimg.cn/img_convert/50523c7e4e8494daa3bdd3a83f1a5c8c.png#clientId=ua94d4479-3c5b-4&from=paste&height=211&id=u4b32aa0b&margin=[object Object]&name=图片.png&originHeight=422&originWidth=854&originalType=binary&ratio=1&size=127333&status=done&style=none&taskId=u213e8d58-f39c-4ef3-8ea0-fbead904109&width=427)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值