flink的安装模式

xlhlx xlhlx     2022-12-04     411

关键词:

Flink 常见的部署模式:本地模式、Standalone 模式和 Flink On Yarn 模式,然后分别讲解三种模式的使用场景和部署中常见的问题,最后将讲解在生产环境中 Flink 集群的高可用配置。

Flink 常见的部署模式
环境准备
在绝大多数情况下,我们的 Flink 都是运行在 Unix 环境中的,推荐在 Mac OS 或者 Linux 环境下运行 Flink。如果是集群模式,那么可以在自己电脑上安装虚拟机,保证有一个 master 节点和两个 slave 节点。

同时,要注意在所有的机器上都应该安装 JDK 和 SSH。JDK 是我们运行 JVM 语言程序必须的,而 SSH 是为了在服务器之间进行跳转和执行命令所必须的。关于服务器之间通过 SSH 配置公钥登录,你可以直接搜索安装和配置方法,我们不做过度展开。

Flink 的安装包可以在这里下载。需要注意的是,如果你要和 Hadoop 进行集成,那么我们需要使用到对应的 Hadoop 依赖,下面将会详细讲解。

Local 模式
Local 模式是 Flink 提供的最简单部署模式,一般用来本地测试和演示使用。

我们在这里下载 Apache Flink 1.10.0 for Scala 2.11 版本进行演示,该版本对应 Scala 2.11 版本。

将压缩包下载到本地,并且直接进行解压,使用 Flink 默认的端口配置,直接运行脚本启动:

复制? [SoftWare]# tar -zxvf flink-1.10.0-bin-scala_2.11.tgz


上图则为解压完成后的目录情况。

然后,我们可以直接运行脚本启动 Flink :

复制? [flink-1.10.0]# ./bin/start-cluster.sh


上图显示我们的 Flink 启动成功。

我们直接访问本地的 8081 端口,可以看到 Flink 的后台管理界面,验证 Flink 是否成功启动。

 

可以看到 Flink 已经成功启动。当然,我们也可以查看运行日志来确认 Flink 是不是成功启动了,在 log 目录下有程序的启动日志:

 

我们尝试提交一个测试任务:

复制./bin/flink run examples/batch/WordCount.jar


我们在控制台直接看到输出。同样,在 Flink 的后台管理界面 Completed Jobs 一栏可以看到刚才提交执行的程序:

 

Standalone 模式
Standalone 模式是集群模式的一种,但是这种模式一般并不运行在生产环境中,原因和 on yarn 模式相比:

Standalone 模式的部署相对简单,可以支持小规模,少量的任务运行;
Stabdalone 模式缺少系统层面对集群中 Job 的管理,容易遭成资源分配不均匀;
资源隔离相对简单,任务之间资源竞争严重。
我们在 3 台虚拟机之间搭建 standalone 集群:

 

在 master 节点,将 Apache Flink 1.10.0 for Scala 2.11 包进行解压:

复制? [SoftWare]# tar -zxvf flink-1.10.0-bin-scala_2.11.tgz
重点来啦,我们需要修改 Flink 的配置文件,并且将修改好的解压目录完整的拷贝到两个从节点中去。在这里,我强烈建议主节点和从节点的目录要保持一致。

我们修改 conf 目录下的 flink-conf.yaml:

 

flink-conf.yaml 文件中有大量的配置参数,我们挑选其中必填的最基本参数进行修改:

复制jobmanager.rpc.address: master
jobmanager.heap.size: 1024m
jobmanager.rpc.port: 6123
taskmanager.memory.process.size: 1568m
taskmanager.numberOfTaskSlots: 1
parallelism.default: 1
jobmanager.execution.failover-strategy: region
io.tmp.dirs: /tmp
它们分别代表:

 

如果你对其他的参数有兴趣的话,可以直接参考官网。

接下来我们修改 conf 目录下的 master 和 slave 文件。

vim master,将内容修改为:

复制master
vim slave,将内容修改为:

复制slave01
slave02
然后,将整个修改好的 Flink 解压目录使用 scp 远程拷贝命令发送到从节点:

复制scp -r /SoftWare/flink-1.10.0 slave01:/SoftWare/
scp -r /SoftWare/flink-1.10.0 slave02:/SoftWare/
在 master、slave01、slave02 上分别配置环境变量,vim /etc/profile,将内容修改为:

复制export FLINK_HOME=/SoftWare/flink-1.10.0
export PATH=$PATH:$FLINK_HOME/bin
到此为止,我们整个的基础配置已经完成,下面需要启动集群,登录 master 节点执行:

复制/SoftWare/flink-1.10.0/bin/start-cluster.sh
可以在浏览器访问:http://192.168.2.100:8081/ 检查集群是否启动成功。

集群搭建过程中,可能出现的问题:

端口被占用,我们需要手动杀掉占用端口的程序;
目录找不到或者文件找不到,我们在 flink-conf.yaml 中配置过 io.tmp.dirs ,这个目录需要手动创建。
On Yarn 模式和 HA 配置


上图是 Flink on Yarn 模式下,Flink 和 Yarn 的交互流程。Yarn 是 Hadoop 三驾马车之一,主要用来做资源管理。我们在 Flink on Yarn 模式中也是借助 Yarn 的资源管理优势,需要在三个节点中配置 YARN_CONF_DIR、HADOOP_CONF_DIR、HADOOP_CONF_PATH 中的任意一个环境变量即可。

本课时中集群的高可用 HA 配置是基于独立的 ZooKeeper 集群。当然,Flink 本身提供了内置 ZooKeeper 插件,可以直接修改 conf/zoo.cfg,并且使用 /bin/start-zookeeper-quorum.sh 直接启动。

环境准备:

ZooKeeper-3.x
Flink-1.10.0
Hadoop-2.6.5
我们使用 5 台虚拟机搭建 on yarn 的高可用集群:

 

如果你在使用 Flink 的最新版本 1.10.0 时,那么需要在本地安装 Hadoop 环境并进行下面的操作。

首先,添加环境变量:

复制vi /etc/profile
# 添加环境变量
export HADOOP_CONF_DIR=/Software/hadoop-2.6.5/etc/hadoop
# 环境变量生效
source /etc/profile
其次,下载对应的的依赖包,并将对应的 Hadoop 依赖复制到 flink 的 lib 目录下,对应的 hadoop 依赖可以在这里下载。

 

与 standalone 集群不同的是,我们需要修改 flink-conf.yaml 文件中的一些配置:

复制high-availability: zookeeper
high-availability.storageDir: hdfs://cluster/flinkha/
high-availability.zookeeper.quorum: slave01:2181,slave02:2181,slave03:2181
它们分别代表:

 

然后分别修改 master、slave、zoo.cfg 三个配置文件。
vim master,将内容修改为:

复制master01:8081
master02:8081
vim slave,将内容修改为:

复制slave01
slave02
slave03
vim zoo.cfg,将内容修改为:

复制server.1=slave01:2888:3888
server.2=slave02:2888:3888
server.3=slave03:2888:3888
然后,我们将整个修改好的 Flink 解压目录使用 scp 远程拷贝命令发送到从节点:

复制scp -r /SoftWare/flink-1.10.0 slave01:/SoftWare/
scp -r /SoftWare/flink-1.10.0 slave02:/SoftWare/
scp -r /SoftWare/flink-1.10.0 slave03:/SoftWare/
分别启动 Hadoop 和 ZooKeeper,然后在主节点,使用命令启动集群:

复制/SoftWare/flink-1.10.0/bin/start-cluster.sh
我们同样直接访问 http://192.168.2.100:8081/ 端口,可以看到 Flink 的后台管理界面,验证 Flink 是否成功启动。

在 Flink on yarn 模式下,启动集群的方式有两种:

直接在 yarn 上运行任务
yarn session 模式
直接在 yarn 上运行任务相当于将 job 直接提交到 yarn 上,每个任务会根据用户的指定进行资源申请,任务之间互不影响。

复制./bin/flink run -yjm 1024m -ytm 4096m -ys 2 ./examples/batch/WordCount.jar
更多关于参数的含义,可以参考官网。

使用 yarn session 模式,我们需要先启动一个 yarn-session 会话,相当于启动了一个 yarn 任务,这个任务所占用的资源不会变化,并且一直运行。我们在使用 flink run 向这个 session 任务提交作业时,如果 session 的资源不足,那么任务会等待,直到其他资源释放。当这个 yarn-session 被杀死时,所有任务都会停止。

例如我们启动一个 yarn session 任务,该任务拥有 8G 内存、32 个槽位。

复制./bin/yarn-session.sh -tm 8192 -s 32
我们在 yarn 的界面上可以看到这个任务的 ID,然后向这个 session ID 提交 Flink 任务:

复制./bin/flink run -m yarn-cluster -yid application_xxxx ./examples/batch/WordCount.jar
其中,application_xxxx 即为上述的 yarn session 任务 ID。

总结
本课时我们讲解了 Flink 的三种部署模式和高可用配置,并且对这三种部署模式的适用场景进行了讲解。在生产上,我们最常用的方式当然是 Flink on Yarn,借助 Yarn 在资源管理上的绝对优势,确保集群和任务的稳定

flink的安装和部署--standalone集群模式(代码片段)

...搭建一套独立的Flink集群,可以考虑使用这种模式。具体安装步骤(主节点)(flink-1.10.2-bin-scala_2.11.tgz用这个即可)flink-1.7.2-bin-hadoop27 查看详情

flink的安装和部署

Flink的安装和部署主要分为本地(单机)模式和集群模式,其中本地模式只需直接解压就可以使用,不以修改任何参数,一般在做一些简单测试的时候使用。本地模式在我们的  课程里面不再赘述。集群模式包含:u Sta... 查看详情

flink编程入门

...应用中大多使用Standalone或者YarnCluster,而local模式只是将安装包解压启动(./bin/start-local.sh)即可,在这里不在演示。1.2. Standalone模式 1.2.1. 下载 安装包下载地址:http://flink.apache.org/downloads.html 快速入门教程地... 查看详情

2.flink安装部署local本地模式-了解standalone独立集群模式standalone-ha高可用集群模式(原理|操作|测试)(代码片段)

本文来自:Flink1.12-2021黑马程序员贺岁视频2.Flink安装部署2.1.Local本地模式-了解2.1.1.原理2.1.2.操作2.1.3.测试2.2.Standalone独立集群模式2.2.1.原理2.2.2.操作2.2.3.测试2.3.Standalone-HA高可用集群模式2.3.1.原理2.3.2.操作2.3.3.测试2.Flink安装... 查看详情

flink安装部署

Flink概述ApacheFlink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。Flink特点1)随处部署应用与其它组件集成!flink是分布式系统... 查看详情

flink的standalone模式的ha环境

...术A在上一节当中,我们实现了flink的standAlone模式的环境安装,并且能够正常提交任务到集群上面去,我们的主节点是jobManager,但是唯一的问题是jobmanager是单节点的,必然会有单节点故障问题的产生,所以我们也可以在standAlone... 查看详情

flink安装及提交任务(代码片段)

FLINK安装及提交任务FLINK安装编写测试代码自带UI界面提交JOB命令提交JOBYARN模式提交JOBSession-cluster模式Per-Job-Cluster模式并行度拓展FLINK安装1.安装前确认有java环境,我这里有三台机器,分别是hadoop1,hadoop2,hadoop3;2.将tar包上传到服... 查看详情

flink安装及提交任务(代码片段)

FLINK安装及提交任务FLINK安装编写测试代码自带UI界面提交JOB命令提交JOBYARN模式提交JOBSession-cluster模式Per-Job-Cluster模式并行度拓展FLINK安装1.安装前确认有java环境,我这里有三台机器,分别是hadoop1,hadoop2,hadoop3;2.将tar包上传到服... 查看详情

flink的安装部署及wordcount测试(代码片段)

一、本地模式在本地以多线程的方式模拟Flink中的多个角色。(开发环境不用)下载地址:https://flink.apache.org/downloads.html这里下载的是:flink-1.13.0-bin-scala_2.12.tgz上传到常用的位置,然后解压。启动:切换到flink的bin目... 查看详情

flink的安装部署及wordcount测试(代码片段)

一、本地模式在本地以多线程的方式模拟Flink中的多个角色。(开发环境不用)下载地址:https://flink.apache.org/downloads.html这里下载的是:flink-1.13.0-bin-scala_2.12.tgz上传到常用的位置,然后解压。启动:切换到flink的bin目... 查看详情

Flink 1.2 没有在 HA Cluster 模式下启动

...】:2017-03-1418:16:10【问题描述】:我已经在HA集群模式下安装了Flink1.22JobManagers1TaskManager在本地,它一直拒绝在这种模式下实际启动“启动集群。”消息而不是“在ZooKeeper仲裁中启动具有2个主节点和1个对等节点的HA集群。”显然... 查看详情

flink集群模式部署及案例执行(代码片段)

...作节点组成。在开始设置系统之前,确保在每个节点上都安装了一下软件:  1.Java1.8.x或更高版本  2.ssh,必须运行sshd才能使用管理远程组件的Flink脚本  在所有集群节点上都具有免密码的ssh和相同的目录结构,将使你可... 查看详情

flink流式计算从入门到实战一(代码片段)

...算1、初识Flink2、Flink的适用场景3、流式计算梳理二、Flink安装部署1、Flink的部署方式2、获取Flink3、实验环境与前置软件4、集群搭建5、Standalone模式启动6、Yarn模式提交任务6.1、首先在yarn上启动yarn-session。6.2、提交测试任务6.3Appli... 查看详情

flink部署操作-flinkstandalone集群安装部署

 flink集群安装部署 standalone集群模式 必须依赖必须的软件JAVA_HOME配置flink安装配置flink启动flink添加Jobmanager/taskmanager实例到集群个人真实环境实践安装步骤 必须依赖必须的软件flink运行在所有类unix环境中,例如:li... 查看详情

大数据flink进阶:flink集群部署(代码片段)

...oop整合2、FlinkonYarn配置及环境准备3、任务提交测试Flink的安装和部署主要分为本地(单机)模式和集群模式,其中本地模式只需直接解压就可以使用,不用修改任何参数,一般在做一些简单测试的时候使用。... 查看详情

flink运行模式

...技术A   在idea中运行Flink程序的方式就是开发模式。   Flink中的Local-cluster(本地集群)模式,单节点运行,主要用于测试,学习。        独立集群模式,由Flink自身提供计算资源。把Fl... 查看详情

02使用flink的本地模式完成词频统计(代码片段)

前面我们已经安装了flink,与storm一样,flink也有两种模式,一是本地模式,主要用于学习和测试,另一个是集群模式,实际生产中使用这种模式。本节将阐述如何使用本地模式的flink进行词频统计。1系统、软件以及前提约束CentOS... 查看详情

大数据flink进阶(十三):flink任务提交模式

文章目录Flink任务提交模式一、会话模式(SessionMode)二、单作业模式(Per-JobMode)三、应用模式(ApplicationMode)Flink任务提交模式Flink分布式计算框架可以基于多种模式部署,每种部署模式下提交任务都... 查看详情