目录
Flink是什么
Flink是“数据流上的有状态计算”
具体说明是:Apache Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。
Flink部署模式
会话模式(Session Mode )、单作业模式(Per-Job Mode)、应用模式(Application Mode)
它们的区别主要在于:集群的生命周期以及资源的分配方式;以及应用的main方法到底在哪里执行——客户端(Client)还是JobManager。
会话模式(Session Mode )
会话模式是最符合常规思维的,我们需要先启动一个集群,保持一个会话,在这个会话中通过客户端提交作业。集群启动时所有资源就都已经确定,所以所有提交的作业会竞争集群中的资源。
会话模式比较适用于单个规模小、执行时间短的大量作业
单作业模式(Per-Job Mode)
单作业模式是每提交一个作业启动一个集群,实现资源的隔离。作业完成后,集群就会关闭,所有资源也会释放。单作业模式在生产环境运行更加的稳定,所有也是实际应用的首选模式。
Flink本身无法直接这样运行,需要借助一些资源管理框架来启动集群,比如yarn、Kubernetes(K8S)
应用模式(Application Mode)
前面提到的两种模式 下,应用代码都是在容广端上执行,然后由客广端提交给JobManager。但是这种方式客户端需要占用大量网络带宽,去下载依赖和把二进制数据发送给JobManager;加上很多情況下我们提交作业用的是同一个客户端,就会加重客户端所在节点的资源消耗。
所以解决办法就是,我们不要客户端了,直接把应用提交到JobManager 上运行。而这也就代表着,我们需要为每一个提交的应用单独启动一个JobManager,也就是创建一个集群。这个JobManager只为执行这一个应用而存在,执行结束之后JobManager也就关闭了,这就是所谓的应用模式。
应用模式与单作业模式,都是提交作业之后才创建集群;单作业模式是通过客户端来提交的,客户端解析出的每一个作业对应一个集群;而应用模式下,是直接用JobManager执行应用程序的。
Flink集群搭建
Standalone运行模式
会话模式
0)集群规划
集群角色分配
节点服务器 |
hadoop102 |
hadoop103 |
hadoop104 |
角色 |
JobManager TaskManager |
TaskManager |
TaskManager |
具体安装部署步骤如下:
1)下载并解压安装包
(1)下载安装包flink-1.13.1-bin-scala_2.12.tgz,注意此处选用对应scala版本为scala 2.12的安装包。将该jar包上传到hadoop102节点服务器的/opt/software路径上。
(2)在/opt/software路径上解压flink-1.13.0-bin-scala_2.12.tgz到/opt/module路径上。