Flink多种模式部署实践

一、Local 模式

Local 模式是 Flink 提供的最简单部署模式,一般用来本地测试和演示使用。
进入 Flink 官网,下载 1.15.2 版本安装包 flink-1.15.2-bin-scala_2.12.tgz,注意此处选用对应 scala 版本为 scala 2.12 的安装包。
https://flink.apache.org/zh/downloads.html

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

1
tar -zxvf flink-1.15.2-bin-scala_2.12.tgz
1
./bin/start-cluster.sh

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

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

1
./bin/flink run examples/batch/WordCount.jar

二、Standalone 模式

1.1 环境配置

Flink 安装部署的学习时,需要准备 3 台 Linux 机器。具体要求如下:

  • 系统环境为 CentOS 7.9 版本。
  • 安装 Java 8。
    1
    2
    3
    4
    [root@hadoop102 flink-1.15.2]# java -version
    java version "1.8.0_333"
    Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
    Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
  • 配置集群节点服务器间时间同步以及免密登录,关闭防火墙。

1.2 集群节点

Me0cWj

节点服务器 hadoop102 hadoop103 hadoop104
ip 192.168.10.102 192.168.10.103 192.168.10.104
角色 JobManager TaskManager TaskManager

1.3 下载并配置运行

进入 Flink 官网,下载 1.15.2 版本安装包 flink-1.15.2-bin-scala_2.12.tgz,注意此处选用对应 scala 版本为 scala 2.12 的安装包。
https://flink.apache.org/zh/downloads.html

  • 1、解压到/opt/module目录下

    1
    [root@hadoop102 flink]$ tar -zxvf flink-1.15.2-bin-scala_2.12.tgz -C /opt/module/
  • 2、进入/opt/module下 的Flink 目录下

    1
    [root@hadoop102 flink-1.15.2]$ cd /opt/module/flink-1.15.2
  • 3、进入conf目录中

    1
    [root@hadoop102 flink-1.15.2]$ cd /conf
  • 4、配置flink-conf.yaml文件

    1
    [root@hadoop102 conf]$ vim flink-conf.yaml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    # jobManager 的IP地址
    jobmanager.rpc.address: hadoop102
    # jobManager JVM heap内存大小
    jobmanager.heap.size: 1024m
    # jobManager 的rpc通信端口
    jobmanager.rpc.port: 6123
    # jobManager 绑定到的网络接口的地址
    jobmanager.bind-host: hadoop102
    # jobmanager进程使用的所有内存大小
    jobmanager.memory.process.size: 1600m
    # taskmanager服务地址 -> 不同主机改主机名称或ip 如:hadoop103、hadoop104
    taskmanager.bind-host: hadoop102/hadoop103/hadoop104
    # taskManager绑定到的网络接口的地址 -> 不同主机改主机名称或ip 如:hadoop103、hadoop104
    taskmanager.host: hadoop102/hadoop103/hadoop104
    # taskmanager进程使用的所有内存大小
    taskmanager.memory.process.size: 1728m
    # 每个TaskManager 提供的任务 slots 数量大小
    # 它的意思是当前task能够同时执行的线程数量 (实际生产环境建议是CPU核心-1,这里笔者写2)
    taskmanager.numberOfTaskSlots: 2
    # 默认并行度
    parallelism.default: 1
    # 重启策略
    jobmanager.execution.failover-strategy: region
    # 客户端应该用来连接到服务器的地址
    rest.address: hadoop102
    # web服务绑定的address
    rest.bind-address: hadoop102
  • 5、配置masters文件(根据实际环境设置)

    1
    hadoop102:8081
  • 6、配置workers文件(根据实际环境设置)

    1
    2
    hadoop103
    hadoop104
  • 7、分发其他机器

    1
    [root@hadoop102 conf]$ xsync /opt/module/flink-1.15.2
  • 8、启动集群

    1
    [root@hadoop102 flink-1.15.2]$ bin/start-cluster.sh 
  • 9、Web UI 默认端口 http://hadoop102:8081
    plfyWk

  • 10、关闭集群

    1
    [root@hadoop102 flink-1.15.2]$ bin/stop-cluster.sh 

1.4 问题

  • MacBook M1虚拟机
  • Centos7操作系统

Flink TaskManager启动报错,报错信息如下:

1
2
Error: VM option ‘UseG1GC’ is experimental and must be enabled via -XX:+UnlockExperimentalVMOptions.
Error: Could not create the Java Virtual Machine.

处理办法

  • 找到bin/taskmanager.sh文件
  • 搜索UseG1GC
  • 直接删除 -XX:+UseG1GC

三、on yarn 模式

on yarn中又分

  • Session Mode
  • Per-Job Mode (1.15 deprecated).
  • Application Mode(Flink 1.11引入)
    篇幅较大,单独:
    Flink on yarn