当前位置:网站首页>Flink1.13.6详细部署方式
Flink1.13.6详细部署方式
2022-07-26 22:47:00 【大数据动物园】
Flink1.13.6支持flink cdc2.x版本,为兼容flink cdc,本文选择使用flink1.13.6版本部署。其他版本也可借鉴。
Flink支持多种部署方式
local(本地)->单机部署,一般不会使用
standalone(独立部署)->flink自带的部署方式,一般用于开发测试使用
yarn(分布式部署)->由hadoopyarn统一的管理资源,是生产环境采用的部署方式
本文将针对以上几种方式进行详细的介绍:
1、伪分布部署

安装步骤:
(1)下载安装包
https://archive.apache.org/dist/flink/flink-1.13.6/flink-1.13.6-bin-scala_2.11.tgz
(2)将压缩包上传到node1服务器
(3)解压缩安装包
tar -zxvf flink-1.13.6-bin-scala_2.11.tgz -C /opt/bigdata(4)进入安装目录,启动flink
./start-cluster.sh

(5)验证是否启动成功
jps 
(6)打开监控页面
(7)运行测试任务
bin/flink run /opt/bigdata/flink-1.13.6/examples/batch/WordCount.jar2、Standalone部署

步骤:
客户端向JobManager递交任务请求
JobManager进行从节点的资源管理和Job任务的拆分,将拆分好的任务份发给从节点去执行
从节点定期的向JobManager汇报心跳信息和任务的执行状态
资源规划
node1(Master——slave)
node2(slave)
node3(slave)
安装步骤:
(1)上传flink压缩包到指定目录
(2)解压缩flink到/opt/bigdata目录
tar -zxvf flink-1.13.6-bin-scala_2.11.tgz -C /opt/bigdata(3)使用vi修改conf/flink-conf.yaml
# jobManager 的IP地址
jobmanager.rpc.address: node1
# JobManager 的端口号
jobmanager.rpc.port: 6123
# JobManager JVM heap 内存大小
jobmanager.heap.size: 1024
# TaskManager JVM heap 内存大小
taskmanager.heap.size: 1024
# 每个 TaskManager 提供的任务 slots 数量大小
taskmanager.numberOfTaskSlots: 2
#是否进行预分配内存,默认不进行预分配,这样在我们不使用flink集群时候不会占用集群资源
taskmanager.memory.preallocate: false
# 程序默认并行计算的个数
parallelism.default: 1
#JobManager的Web界面的端口(默认:8081)
jobmanager.web.port: 8081
#配置每个taskmanager生成的临时文件目录(选配)
taskmanager.tmp.dirs: /opt/bigdata/flink-1.13.6/tmpslot和parallelism总结 :
taskmanager.numberOfTaskSlots:2
每一个taskmanager中的分配2个TaskSlot,3个taskmanager一共有6个TaskSlot
parallelism.default:1 运行程序默认的并行度为1,6个TaskSlot只用了1个,有5个空闲
slot是静态的概念,是指taskmanager具有的并发执行能力2。parallelism是动态的概念,是指程序运行时实际使用的并发能力
(4)使用vi修改slaves文件
node1
node2
node3(5)使用vi修改/etc/profile系统环境变量配置文件,添加HADOOP_CONF_DIR目录
export HADOOP_CONF_DIR=/opt/bigdata/hadoop-2.6.0/etc/hadoop(6)分发/etc/profile到其他两个节点
scp -r /etc/profile node2:/etc
scp -r /etc/profile node3:/etc(7)每个节点重新加载环境变量
source /etc/profile(8)使用scp命令分发flink到其他节点
scp -r /opt/bigdata/flink-1.13.6/ node2:/opt/bigdata/
scp -r /opt/bigdata/flink-1.13.6/ node3:/opt/bigdata/(9)启动Flink集群
./bin/start-cluster.sh启动/停止flink集群
启动:./bin/start-cluster.sh
停止:./bin/stop-cluster.sh
启动/停止jobmanager如果集群中的jobmanager进程挂了,执行下面命令启动
bin/jobmanager.sh start
bin/jobmanager.sh stop
启动/停止taskmanager添加新的taskmanager节点或者重启taskmanager节点
bin/taskmanager.sh start
bin/taskmanager.sh stop
(10)在HDFS中创建/test/input目录
hdfs dfs -mkdir -p /test/input(11)上传README.txt文件到HDFS /test/input目录
hdfs dfs -put /opt/bigdata/flink-1.13.6/README.txt /test/input(12)运行测试任务
bin/flink run /opt/bigdata/flink-1.13.6/examples/batch/WordCount.jar \
--input hdfs://node1:8020/test/input/README.txt \
--output hdfs://node1:8020/test/output2/result.txt(13)浏览Flink Web UI界面
http://node1:80813、standalone的ha环境部署
从上述架构图中,可发现JobManager存在单点故障,一旦JobManager出现意外,整个集群无法工作。所以,为了确保集群的高可用,需要搭建Flink的HA。

资源规划
node1(master+slave)
node2(master+slave)
node3(slave)
环境要求
按照zk集群,同时启动zk集群
安装hadoop集群,同时启动hadoop集群
安装步骤
(1)在flink-conf.yaml中添加zookeeper配置
#开启HA,使用文件系统作为快照存储
state.backend: filesystem
#启用检查点,可以将快照保存到HDFS
state.backend.fs.checkpointdir: hdfs://node1:8020/flink-checkpoints
#使用zookeeper搭建高可用
high-availability: zookeeper
# 存储JobManager的元数据到HDFS
high-availability.storageDir: hdfs://node1:8020/flink/ha/
high-availability.zookeeper.quorum: node1:2181,node2:2181,node3:2181(2)将配置过的HA的flink-conf.yaml分发到另外两个节点
scp -r /opt/bigdata/flink-1.13.6/conf/flink-conf.yaml node2:/opt/bigdata/flink-1.13.6/conf/
scp -r /opt/bigdata/flink-1.13.6/conf/flink-conf.yaml node3:/opt/bigdata/flink-1.13.6/conf/(3)到 node2 中修改flink-conf.yaml中的配置,将JobManager设置为自己节点的名称
jobmanager.rpc.address: node2(4)在node1的masters配置文件中添加多个节点
node1:8081
node2:8081(5)分发masters配置文件到另外两个节点
scp -r /opt/bigdata/flink-1.13.6/conf/masters node2:/opt/bigdata/flink-1.13.6/conf/
scp -r /opt/bigdata/flink-1.13.6/conf/masters node3:/opt/bigdata/flink-1.13.6/conf/(6)启动zookeeper集群
(7)启动HDFS集群
(8)启动flink集群
(9)分别查看两个节点的Flink Web UI
(10)kill掉一个节点,查看另外的一个节点的Web UI
注意事项
切记搭建HA,需要将第二个节点的
jobmanager.rpc.address修改为node2
Standalone集群 使用场景:主要是开发测试阶段
4、yarn的部署
在一个企业中,为了最大化的利用集群资源,一般都会在一个集群中同时运行多种类型的 Workload。因此 Flink 也支持在Yarn上面运行;flink on yarn的前提是:hdfs、yarn均启动
集群规划
JobManager: node1
WorkManager: node1 node2 node3
前提条件:
需要关闭yarn的虚拟内存检测,如果不关闭,假如flink任务在执行过程中,所使用的内存超过了yarn分配的虚拟内存大小,会直接将flink任务杀死,导致任务执行失败,因此需要关闭yarn的虚拟内存检测
操作步骤
(1)修改Hadoop的yarn-site.xml,添加该配置表示内存超过分配值,是否将任务杀掉。默认为true。运行Flink程序,很容易超过分配的内存。
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>(2)分发yarn-site.xml到其它服务器节点
scp yarn-site.xml node2:$PWD
scp yarn-site.xml node3:$PWD(3)启动HDFS、YARN集群
start-all.shFlink On yarn的运行原理

Flink on yarn提供了3种模式
4.1会话模式(yarn-seeion)

使用步骤:
(1)在flink目录启动yarn-session
bin/yarn-session.sh -n 2 -tm 800 -s 1 -d
# -n 表示申请2个容器,
# -s 表示每个容器启动多少个slot
# -tm 表示每个TaskManager申请800M内存
# -d 表示以后台程序方式运行可以通过 bin/yarn-session.sh --help 查看yarn-session.sh脚本可以携带的参数
Required
-n,--container <arg> 分配多少个yarn容器 (=taskmanager的数量)
Optional
-D <arg> 动态属性
-d,--detached 独立运行 (以分离模式运行作业)
-id,--applicationId <arg> YARN集群上的任务id,附着到一个后台运行的yarn session中
-j,--jar <arg> Path to Flink jar file
-jm,--jobManagerMemory <arg> JobManager的内存 [in MB]
-m,--jobmanager <host:port> 指定需要连接的jobmanager(主节点)地址
使用这个参数可以指定一个不同于配置文件中的jobmanager
-n,--container <arg> 分配多少个yarn容器 (=taskmanager的数量)
-nm,--name <arg> 在YARN上为一个自定义的应用设置一个名字
-q,--query 显示yarn中可用的资源 (内存, cpu核数)
-qu,--queue <arg> 指定YARN队列
-s,--slots <arg> 每个TaskManager使用的slots数量
-st,--streaming 在流模式下启动Flink
-tm,--taskManagerMemory <arg> 每个TaskManager的内存 [in MB]
-z,--zookeeperNamespace <arg> 针对HA模式在zookeeper上创建NameSpace(2)访问yarn的webui, http://node1:8088/
(3) 使用flink提交任务
bin/flink run examples/batch/WordCount.jar(4)如果程序运行完了,可以使用yarn application -kill application_id杀掉任务
yarn application -kill application_1573371647348_0002这种方式递交作业,服务一直处于启动状态,任务运行完成以后,服务不会停止,所以节省了任务递交过程中启动服务的操作,从而提高了执行效率,所以在频繁的递交作业、小作业的的场景适合采用这种部署方式
4.2、yarn-pre-job模式

使用步骤:
(1)使用flink直接提交任务
./bin/flink run -t yarn-per-job --detached ./examples/streaming/TopSpeedWindowing.jar(2)查看Yarn的WEB UI, 发现任务结束, Yarn的状态是SUCCESSED
如果使用的 是 flink on yarn 方式,想切 换回 standalone 模式的话, 需要删除文件:
/tmp/.yarn-properties-root因为默认查找当前 yarn 集群中已有的 yarn-session 信息中的 jobmanage
4.3、yarn-application模式
对于生产使用,建议以 Per-job 或 Application Mode 部署 Flink 应用程序,因为这些模式为应用程序提供了更好的隔离。
Application Mode 将在 YARN 上启动 Flink 集群,其中应用程序 jar 的 main() 方法在 YARN 中的 JobManager 上执行。应用程序完成后,集群将立即关闭。您可以使用 yarn application -kill <ApplicationId> 或取消 Flink 作业来手动停止集群。
与yarn-pre-job不一样的就是ApplicationMode需要将jar包上传到hdfs上执行,yarn会随机选择一台服务器启动flink的jobmanager容器,并执行main方法。
使用步骤:
(1)使用flink直接提交任务
./bin/flink run-application -t yarn-application hdfs:///streaming/TopSpeedWindowing.jar部署应用程序模式集群后,用户可以与其交互以执行取消或获取保存点等操作。
./bin/flink list -t yarn-application -Dyarn.application.id=application_XXXX_YY
# Cancel running job
./bin/flink cancel -t yarn-application -Dyarn.application.id=application_XXXX_YY <jobId>注意,取消yarn-application集群上的作业将停止集群。
边栏推荐
- Review of wireless sensor networks (Bilingual)
- Shell (13) Three Musketeers
- mysql的安装
- MySQL backup recovery
- MySQL index
- Review of information acquisition technology
- Shell (8) cycle
- C language foundation Gobang, very easy to understand, detailed explanation, easy to use
- Summary and review of key points of digital image processing
- Mysql database - interview questions
猜你喜欢

(codeforce 807div2)C. Mark and his unfinished essay (thinking)

科学计算库 —— Matplotlib

Shell programming specifications and variables
![[cann training camp] enter media data processing (Part 2)](/img/74/aa08e9fc3c41f0b17ca6866685f426.png)
[cann training camp] enter media data processing (Part 2)

机器学习概述

Application of load balancing

详解文本生成图像的仿射变换模块(Affine Transformation)和条件批量标准化(CBN)

Machine learning exercise 7 - K-means and PCA (principal component analysis)

count(*)为什么很慢

Use of shell (11) brackets
随机推荐
MySQL master-slave replication and read-write separation
Dynamic programming (knapsack problem)
Shell course summary
Review of wireless sensor networks (Bilingual)
Homework 1-4 learning notes
[paddleseg source code reading] paddleseg export static graph export Trace in py file
三种能有效融合文本和图像信息的方法——特征拼接、跨模态注意、条件批量归一化
mysql视图
利用九天深度学习平台复现SSA-GAN
Proxmox ve installation and initialization
行,表,页,共享,排他,悲观,乐观,死锁
三范式,约束,部分关键字区别,
[translation] explicit and implicit batch in tensorrt
IS指标复现 文本生成图像IS分数定量实验全流程复现 Inception Score定量评价实验踩坑避坑流程
【CANN训练营】走进媒体数据处理1
2022年T2I文本生成图像 中文期刊论文速览-1(ECAGAN:基于通道注意力机制的文本生成图像方法+CAE-GAN:基于Transformer交叉注意力的文本生成图像技术)
Removal and addition of reference types in template and generic programming
Proxmox VE安装与初始化
How can smart people leave without offending others?
(hdu1588) Gauss Fibonacci (sum of matrix fast power + bisection matrix proportional sequence)