集群启动

Flink 本地启动非常简单,直接执行 bin/start-cluster.sh 就可以了。如果我们想要扩展成集群,其实启动命令是不变的,主要是需要指定节点之间的主从关系。
Flink 是典型的 Master-Slave 架构的分布式数据处理框架,其中 Master 角色对应着
JobManager,Slave 角色则对应TaskManager。我们对三台节点服务器的角色分配如表

| 节点服务器 | hadoop102 | hadoop103 | hadoop104 |
|------------|-----------|-----------|-----------|
| 角色       | JobManager | TaskManager | TaskManager |

具体安装部署步骤如下:

  1. 下载并解压安装包

    https://dlcdn.apache.org/flink/flink-1.20.0/flink-1.20.0-bin-scala_2.12.tgz

  2. 修改集群配置
    (1)进入 conf 目录下,修改 flink-conf.yaml 文件,修改 jobmanager.rpc.address 参数为
    hadoop102,如下所示:

    1
    2
    3
    $ cd conf/
    vim flink-conf.yaml
    jobmanager.rpc.address: hadoop102

    这就指定了hadoop102 节点服务器为 JobManager 节点。

    (2)修改 workers 文件,将另外两台节点服务器添加为本 Flink 集群的TaskManager 节点,具体修改如下:

    1
    2
    3
    $ vim workers 
    hadoop103
    hadoop104

这样就指定了hadoop103 和 hadoop104 为TaskManager 节点。

(3) 另外,在 flink-conf.yaml 文件中还可以对集群中的 JobManager 和 TaskManager 组件进行优化配置,主要配置项如下:

jobmanager.memory.process.size:对 JobManager 进程可使用到的全部内存进行配置, 包括 JVM 元空间和其他开销,默认为 1600M,可以根据集群规模进行适当调整。
taskmanager.memory.process.size:对 TaskManager 进程可使用到的全部内存进行配置,包括 JVM 元空间和其他开销,默认为 1600M,可以根据集群规模进行适当调整。
taskmanager.numberOfTaskSlots:对每个 TaskManager 能够分配的 Slot 数量进行配置, 默认为 1,可根据 TaskManager 所在的机器能够提供给 Flink 的 CPU 数量决定。所谓Slot 就是TaskManager 中具体运行一个任务所分配的计算资源。

我的集群配置
1
2
3
4
5
6
7
8
9
10
jobmanager.rpc.port: 6123
jobmanager.memory.process.size: 1024m
taskmanager.memory.process.size: 1024m
taskmanager.numberOfTaskSlots: 1
parallelism.default: 1
rest.port: 8081
rest.address: bigdata1
rest.bind-address: 0.0.0.0
web.submit.enable: true
web.cancel.enable: true
parallelism.default:Flink 任务执行的默认并行度,优先级低于代码中进行的并行度配置和任务提交时使用参数指定的并行度数量。
  1. 分发安装目录

    配置修改完毕后,将 Flink 安装目录发给另外两个节点服务器。

    1
    2
    $ scp -r ./flink-1.13.0 atguigu@hadoop103:/opt/module
    $ scp -r ./flink-1.13.0 atguigu@hadoop104:/opt/module

    或者用同步命令

    1
    rsync -av ./flink-1.13.0 user@hostname:目录
  2. 启动集群

    (1) 在 hadoop102 节点服务器上执行 start-cluster.sh 启动 Flink 集群:
    (2) 查看进程情况:

    jps

  3. 访问 Web UI

    启动成功后,同样可以访问 http://hadoop102:8081 对 flink 集群和任务进行监控管理

  4. 在本地提交作业

    主要命令如下:

    1
    2
    3
    bin/start-cluster.sh 
    bin/flink run -m bigdata1 -c com.shhh -p ./jar
    bin/flink cancel jobID

以上命令都是以flink作为根节点操作