Flink:所有流量都转到一个任务管理器(在具有 1 个作业管理器 + 2 个任务管理器的集群中)

时间:2021-06-02 08:58:11

标签: apache-flink flink-streaming

我有以下设置:

Installation type k8s: 1.18
Flink version: 1.12
1 Job Manager
2 Task Manager

在任务管理器的flink-conf.yaml中

  flink-conf.yaml: |
    state.backend: rocksdb
    blob.server.port: 6124
    jobmanager.rpc.port: 6123
    parallelism.default: 2
    queryable-state.proxy.ports: 6125
    taskmanager.numberOfTaskSlots: 2
    taskmanager.rpc.port: 6122
    jobmanager.memory.process.size: 2900m
    taskmanager.memory.process.size: 2900m
    jobmanager.web.address: 0.0.0.0
    rest.address: 0.0.0.0
    rest.bind-address: 0.0.0.0

在job manager的flink-conf.yaml中

  flink-conf.yaml: |
    state.backend: rocksdb
    blob.server.port: 6124
    jobmanager.rpc.port: 6123
    parallelism.default: 2
    queryable-state.proxy.ports: 6125
    taskmanager.rpc.port: 6122
    jobmanager.memory.process.size: 2900m
    taskmanager.memory.process.size: 2900m
    jobmanager.web.address: 0.0.0.0
    rest.address: 0.0.0.0
    rest.bind-address: 0.0.0.0
    rest.port: 8081

使用上述配置,只有一个任务管理器处于活动状态,即获取流量,而另一个任务管理器保持空闲,即使事件数量增加到极端水平。

如果我遗漏了什么,请提出建议?

1 个答案:

答案 0 :(得分:0)

您已将并行度设置为 2,并为每个任务管理器分配了 2 个插槽。因此,单个任务管理器可以提供请求的并行性,这就是默认情况下会发生的情况。

如果您希望调度程序的行为不同,您可以设置

cluster.evenly-spread-out-slots: true

或者您可以将 taskmanager.numberOfTaskSlots 减少到 1。