[3] Flink大数据流式处理利剑: Flink的部署架构

在前面的两个章节:《[1] Flink大数据流式处理利剑: 简介》《[2] Flink大数据流式处理利剑: 用Flink进行统计的一个简单例子》 主要对Flink进行了简单介绍并演示了一个简单的例子;这个章节,我们来看看Flink的部署架构。Flink支持各种部署方式,单机版和集群版;本文将会给你大家介绍一下Flink的集群版的部署架构。

Flink集群版的部署架构如下:一主多从;主指的就是JobManager, 从指的就是TaskManager;
在这里插入图片描述
从上面可以看出,Flink集群主要有三大部分:

组件 目的 实现方式
Flink Client 编译批处理或者流处理到一个数据流图并上传到JobManager 命令行,Restful终端,SQL客户端,Python 脚本,Scala脚本
JobManager 是Flink的中央协调管理者,其支持三种job计较方式: Application 模式, Per-Job 模式, Session模式 单机,Docker,Docker Swarm,K8s,Yarn 都可以用来安装部署JobManager
TaskManager 是Job的具体执行者,其最终会执行Job

上图中黄色正方形代表的是Flink和外部配合工作的组件(我就不一一翻译了)其是可选的;
在这里插入图片描述
值得一提的是Flink的应用数据的来源(Source)和处理后的储存(Sinks),Flink目前支持了下面的连接器(Connectors),这些连接器在选型的时候可以根据不同的业务需求进行选型。需要的注意的是,有的连接器,只支持储存处理后的结果,有的只支持作为Flink的数据源,有的不但能作为Flink的数据源也能作为处理后的储存。
在这里插入图片描述
在这里插入图片描述
值得一提的是,当前很多云厂商的大数据流式处理方案都是基于Flink而进行托管的,比如下面的产品:

由此可见,Flink的应用是多么的广泛和优秀。

参考文献:
https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/overview/
https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/connectors/datastream/overview/
https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/repls/python_shell/
https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/deployment/repls/scala_shell/

おすすめ

転載: blog.csdn.net/chancein007/article/details/122517846