Flink部署

99 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天 juejin.cn/post/716729…

Flink集群安装部署

Flink支持多种安装部署方式

  • Standalone
  • ON YARN
  • Mesos、Kubernetes、AWS...

这些安装方式我们主要讲一下standalone和on yarn。

如果是一个独立环境的话,可能会用到standalone集群模式。

在生产环境下一般还是用on yarn 这种模式比较多,因为这样可以综合利用集群资源。和我们之前讲的spark on yarn是一样的效果

这个时候我们的Hadoop集群上面既可以运行MapReduce任务,Spark任务,还可以运行Flink任务,一举三得。

standalone

下面我们来看一下standalone模式

它的架构是这样的

图片描述

分布式环境配置

依赖环境

jdk1.8及以上【配置JAVA_HOME环境变量】

ssh免密码登录

在这我们使用bigdata01、02、03这三台机器,这几台机器的基础环境都是ok的,可以直接使用。

集群规划如下:

master:bigdata01

slave:bigdata02、bigdata03

接下来我们需要先去下载Flink的安装包。

图片描述

由于目前Flink各个版本之间差异比较大,属于快速迭代阶段,所以在这我们就使用最新版本了,使用Flink1.11.1版本。

安装包下载好以后上传到bigdata01的/data/soft目录中

1:解压

tar -zxvf flink-1.11.1-bin-scala_2.12.tgz

2:修改配置

vi flink-conf.yaml
配置内容:jobmanager.rpc.address: bigdata01
vi masters
配置内容:bigdata01:8081
vi workers
配置内容:
bigdata02 bigdata03

3:拷贝到其他节点

scp -rq flink-1.11.1 bigdata02:/data/soft/
scp -rq flink-1.11.1 bigdata03:/data/soft/

4:启动Flink集群

bin/start-cluster.sh

5:JPS验证进程

6:访问Web UI

http://bigdata01:8081

7:停止集群,在主节点上执行停止集群脚本

bin/stop-cluster.sh

集群核心参数

参数解释
jobmanager.memory.process.size主节点可用内存大小
taskmanager.memory.process.size从节点可用内存大小
taskmanager.numberOfTaskSlots从节点可以启动的进程数量,建议设置为从节可用的cpu数量
parallelism.defaultFlink任务的默认并行度

参数解释

1:slot是静态的概念,是指taskmanager具有的并发执行能力

2:parallelism是动态的概念,是指程序运行时实际使用的并发能力

3:设置合适的parallelism能提高程序计算效率,太多了和太少了都不好

Flink ON Yarn

Flink ON YARN模式就是直接像Hadoop集群提交任务的模式,不需要单独启动Flink进程。

  • Flink ON YARN 模式依赖Hadoop 2.4.1及以上版本
  • Flink ON YARN支持两种使用方式

两种使用方式

image-20220718111102408

第一种

  • 在集群中初始化一个长时间运行的Flink集群 使用yarn-session.sh脚本
  • 使用flink run命令向Flink集群中提交任务
  • 注意:使用flink on yarn需要确保hadoop集群已经启动成功
1.在/etc/profile 中配置 HADOOP_CLASSPATH
export HADOOP_CLASSPATH=`${HADOOP_HOME}/bin/hadoop classpath`
2.yarn-session.sh在Yarn中创建一个长时间运行的FLink集群
bin/yarn-session.sh -jm 1024m -tm 1024m -d
3.-jm 是指定主节点的内存, -tm 是指定从节点的内存, -d 是表示把这个进 程放到后台去执行
4.去yarn web界面查看flink集群信息,可以点击进入flink web ui

image-20220718111424358

案例:提交内置案例
bin/flink run ./examples/batch/WordCount.jar

注意:这个时候我们使用flink run的时候,它会默认找这个文件,然后根据这个文件找到刚才我 们创建的那个永久的Flink集群,这个文件里面保存的就是刚才启动的那个Flink集群在YARN中对应的applicationid。

image-20220718111600014

重新打开 即可看到一个task

这个任务在执行的时候,会动态申请一些资源执行任务,任务执行完毕之后,对应的资源 会自动释放掉

最后停止这个Flink集群

yarn application -kill  your appication_ID

第二种方式

flink run -m yarn-cluster (创建Flink集群+提交任务)

使用flink run直接创建一个临时的Flink集群,并且提交任务

此时这里面的参数前面加上了一个y参数

Flink ON YARN的好处

1:提高大数据集群机器的利用率

2:一套集群,可以执行MR任务,Spark任务,Flink任务等

提交任务

1.pom.xml中打包

需要将Flink和Hadoop的相关依赖的score属性设置为provided,这些依赖不需要打进jar包

2.生成jar包: mvn clean package -DskipTests

3.将jar包上传到bigdata04 机器

4.提交flink任务

配置historyserver

vi conf/flink-conf.yaml
配置内容
jobmanager.archive.fs.dir: hdfs://bigdata01:9000/completed-jobs/ 
historyserver.web.address: ip
historyserver.web.port: 8082 
historyserver.archive.fs.dir: hdfs://bigdata01:9000/completed-jobs/ historyserver.archive.fs.refresh-interval: 10000
启动
bin/mapred --daemon start historyserver
​