一、概述与说明
1.1 概述
- 背景:描述此文档的背景和要解决的技术问题
- 技术定位:初级
- 目标群体:使用Flink的应用开发用户
- 技术应用场景:Standalone 是 Flink 的独立部署模式,它不依赖其他平台,一般用于测试环境。
- 官方链接:nightlies.apache.org/flink/flink…
1.2 执行模式说明
可以通过以下三种方式中的一种执行 Flink 程序:
- Application Mode
- Session Mode
- Per-Job Mode(过时)
上面模式的不同点:
- 集群生命周期和资源隔离保证
- 应用程序的
main()
方法是在客户端执行还是在集群上执行
Flink****的Standalone集群并不支持单作业模式部署。
1.3 安装部署说明
- local(本地):本地单机模式,一般用于测试环境是否搭建成功,很少使用
- standalone(独立集群模式):flink自带集群,开发测试使用(此文档介绍)
- StandAloneHA:独立集群的高可用模式,也是flink自带,用于开发测试环境
- on yarn(flink on yarn):计算资源统一由hadoop yarn管理,生产环境使用
- on K8S:生产环境使用
二、操作步骤
2.1 Flink架构概要
下图展示的是每个 Flink 集群的组成部分。
首先会有一个在某处一直运行的客户端,这个客户端会将 Flink 应用程序中的代码转换为 JobGraph,并将其提交给 JobManager,JobManager 会将任务分布到 TaskManager 中,TaskManager 会一直运行真正的算子,比如:source、转换、sink。
2.2 准备工作
- Java1.8.x及以上版本。
- ssh安装
Java需要配置JAVA_HOME环境变量,并且指向Java安装目录。
ssh需要在集群节点上配置免密码登录,并且Flink安装目录也要在所有节点的相同目录上,这样我们就可以使用Flink的脚本来管理它们了。
Flink集群由一个Master节点和一个或多个Worker节点组成。
主机 | 节点类型 | 服务名称 |
---|---|---|
10.0.0.1 | master | jobmanager |
10.0.0.2 | worker | taskmanager |
10.0.0.3 | worker | taskmanager |
2.3 下载安装上传
下载安装包
上传服务器
解压
tar -zxvf flink-1.13.1-bin-scala_2.11.tgz -C /XXXX/XXXX
2.4 修改配置文件
# jobManager 的IP地址
jobmanager.rpc.address: node1
# JobManager 的端口号
jobmanager.rpc.port: 6123
# JobManager JVM heap 内存大小
jobmanager.memory.process.size: 1600m
# TaskManager JVM heap 内存大小
taskmanager.memory.process.size: 1728m
# 每个 TaskManager 提供的任务 slots 数量大小
taskmanager.numberOfTaskSlots: 2
#是否进行预分配内存,默认不进行预分配,这样在我们不使用flink集群时候不会占用集群资源
taskmanager.memory.preallocate: false
# 程序默认并行计算的个数
parallelism.default: 1
#JobManager的Web界面的端口(默认:8081)
jobmanager.web.port: 8081
修改fink-conf.yml
注意:修改yml格式的配置文件时,key和value之间必须得有一个空格
masters
workers
2.5 配置环境变量并分发文件
使环境变量起作用
source /etc/profile
分发文件
分发flink
分发 环境变量 配置文件
三 、测试任务
启动集群
查看web ui
启动历史服务器
standalone集群的测试任务——单词计数
flink run examples/batch/WordCount.jar --input hdfs://hadoop001:9000/input/ --output hdfs://hadoop001:9000/output/result.txt
四、总结
总结本次技术应用中可积累的代码和经验
技术经验
有待提升
- 写下第一条经验
- ......
- 记录遇到的阻塞点
- ......