一、本地启动 & 集群启动
1、本地启动:最简单的启动方式,其实是不搭建集群,直接本地启动。本地部署非常简单,直接解压安装包就可以使用,不用进行任何配置;一般用来做一些简单的测试。
启动成功后,访问 http://hadoop102:8081,可以对 flink 集群和任务进行监控管理
2、集群启动:如果我们想要扩展成集群,其实启动命令是不变的,主要是需要指定节点之间的主从关系。Flink 是典型的 Master-Slave 架构的分布式数据处理框架,其中 Master 角色对应着JobManager,Slave 角色则对应 TaskManager。操作如下:
(
1
)进入
conf
目录下,修改
flink-conf.yaml
文件,修改
jobmanager.rpc.address
参数为
hadoop102
(2)修改
workers
文件,将另外两台节点服务器添加为本
Flink
集群的
TaskManager
节点
(3)配置修改完毕后,将
Flink
安装目录发给另外两个节点服务器
(4)
在
hadoop102
节点服务器上执行
start-cluster.sh
启动
Flink
集群: $ bin/start-cluster.sh
二、向集群提交作业的方式
1、打包程序,在 Web UI 上提交作业。
2、命令行提交作业 。
$ bin/flink run -m hadoop102:8081 -c
com.atguigu.wc.StreamWordCount ./FlinkTutorial-1.0-SNAPSHOT.jar
这里的参数 –m 指定了提交到的 JobManager,-c 指定了入口类
三、部署模式
1、会话模式(Session Mode)
先启动集群,保持一个会话;集群只有一个,所有作业争夺资源
2、单作业模式(Per-Job Mode)
客户端运行程序,运行作业时再启动集群 ,一个作业启动一个集群,需要借助第三方资源调度器。这些特性使得单作业模式在生产环境运行更加稳定,所以是实际应用的首选模式。
3、应用模式(Application Mode)
直接把应用提交到 JobManger 上运行。需为每一个提交的应用单独启动一个 JobManager,也就是创建一个集群。这个 JobManager 只为执行这一个应用而存在,执行结束之后 JobManager 也就关闭了。
四、Standalone模式 & Yarn模式
1、Standalone模式
资源调度由
Flink自己负责,所需要的所有 Flink 组件,都只是操作系统上运行的一个 JVM 进程。
支持会话模式和应用模式,唯独不支持单作业模式,因为单作业模式需要其他资源调度器的参与。
2、Yarn模式
动态分配资源,
支持会话模式、单作业模式和应用模式
3、高可用
YARN
模式的高可用和独立模式(
Standalone
)的高可用原理不一样。
Standalone 模式中
,
同时启动多个
JobManager,
一个为“领导者”(
leader
),其他为“后备” (standby
)
,
当
leader
挂了
,
其他的才会有一个成为
leader
。
而 YARN
的高可用是只启动一个
Jobmanager,
当这个
Jobmanager
挂了之后
, YARN
会再次启动一个,
所以其实是利用的
YARN
的重试次数来实现的高可用。