Flink三种安装部署方式(HA)

介绍

Flink提供了多种部署方式,本文只介绍三种常用方式,local、standalone、yarn。

安装前准备

Java8以上(必备基础环境)
Zookeeper(HA高可用需要环境)
Hadoop(YARN模式需要环境)
三台Linux机器
Flink安装包flink-1.10.0-bin-scala_2.11.tgz 官方下载地址
Flink Hadoop依赖包flink-shaded(yarn-session.sh运行需要,如果官方没有提供对应Hadoop和Flink版本依赖包,需自行下载shaded源码编译打包) 官方下载地址

Local模式

Local Cluster模式是开箱即用的,直接解压安装包,然后启动即可。

//解压
tar -zxvf flink-1.10.0-bin-scala_2.11.tgz
//进入bin目录运行启动脚本
./start-cluster.sh

打开浏览器输入http://IP:8081,查看WEBUI监控界面

Standalone模式

Stanalone CLuster是一种独立的集群模式,集群运行不需要依赖外部系统,完全自己独立进行管理。
三台机器部署情况:

节点 服务
节点一 master
节点二 worker
节点三 worker

1、解压安装包

tar -zxvf flink-1.10.0-bin-scala_2.11.tgz

2、修改配置文件,conf目录下
flink-conf.yaml文件

## jobmanager节点地址,也是master节点地址
jobmanager.rpc.address: tod1

其他使用默认配置,其中有一些HA高可用、容错、安全、HistoryServer相关配置,按需进行配置即可,HistoryServer需单独运行启动脚本来启动服务。
修改masters文件

vim masters
//添加
tod1:8081

修改slaves文件

vim slaves
//添加
tod2
tod3

3、将安装目录复制到另外两台节点

scp -r flink-1.10.0 tod2:/home/hadmin/
scp -r flink-1.10.0 tod3:/home/hadmin/

4、配置环境变量,修改/etc/profile

export FLINK_HOME=/home/hadmin/flink-1.10.0
export PATH=$PATH:$FLINK_HOME/bin
//使配置文件生效
source /etc/profile

5、启动集群

start-cluster.sh

6、打开浏览器输入http://IP:8081
Flink三种安装部署方式(HA)_第1张图片

YARN模式

YARN模式是使用YARN做为Flink运行平台,JobManager、TaskManager、用户提交的应用程序都运行在YARN上。
1、修改flink-conf.yaml配置文件

# 关于容错配置,checkpoints存储方式
 state.backend: filesystem
 state.checkpoints.dir: hdfs://ns/flink-checkpoints
 state.savepoints.dir: hdfs://ns/flink-checkpoints

2、将flink-shaded-hadoop-2-uber-2.7.5-10.0.jar上传到flink的lib目录
3、将Flink以服务形式长期运行在YARN,Job运行完也不会关闭,但是这种方式启动时资源已经指定,多个Job运行共享资源

yarn-session.sh -n 2 -s 4 -jm 512m -tm 512m

此时在YARN监控页面启动了一个Container,里面运行Flink程序
然后用户使用flink工具脚本提交Job即可

flink run -m yarn-cluster example.jar

4、直接用Flink提交到YARN,提交一个任务就生成一个Job

flink run -m yarn-cluster example.jar

HA高可用

注意:此处有个坑,Standalone模式的HA必须依赖于共享存储文件系统,因为要保证JobManager的元数据信息对所有节点共享,由high-availability.storageDir参数指定JobManager存储位置。如果指定本地目录,即使启动2个JobManager也不会实现高可用,因为元数据信息不能共享。可选代替方案,使用NFS挂载远程机器JobManager信息存储目录。

HA就是JobManager高可用,在Standalone Cluster模式下,实现HA依赖于外部软件Zookeeper,因此需要添加Zookeeper相关配置
1、修改配置文件masters

tod1:8081
tod2:8081

2、修改flink-conf.yaml

 high-availability: zookeeper
 high-availability.storageDir: hdfs://ns/flink/ha/
 high-availability.zookeeper.quorum: tod1:2181,tod2:2181,tod3:2181
 high-availability.zookeeper.path.root: /flink
 # JobManager元数据存储位置,必须使用共享分布式文件系统,要保证所有节点能访问该目录
 high-availability.storageDir: hdfs:///flink/recovery

3、将配置文件复制到另外两台节点,启动集群

start-clushter.sh

Flink三种安装部署方式(HA)_第2张图片

注意:此时监控页面的IP地址需要指定Zookeeper的leader节点IP

YARN模式下的HA需要注意一点,官方给出建议,必须要增加以下两项配置:
YARN配置,修改yarn-site.xml

//master(JobManager)失败重启的最大尝试次数
<property>
  <name>yarn.resourcemanager.am.max-attemptsname>
  <value>4value>
  <description>
    The maximum number of application master execution attempts.
  description>
property>

Flink配置,修改flink-conf.yaml

//用户提交作业失败时,重新执行次数
yarn.application-attempts: 10

水平一般,能力有限,大数据小学生一枚。文章主要用于个人学习和总结,如果能给他人带来帮助,纯属意外。

你可能感兴趣的:(Flink)