Flink:所有流量都转到一个任务管理器(在具有 1 个作业管理器 + 2 个任务管理器的集群中)
Flink: all traffic goes to one Task Manager (in cluster with 1 Job Manager + 2 Task Managers)
我有以下设置:
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
在作业管理器的 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
使用上述配置,只有一个任务管理器处于活动状态,即获取流量,而另一个任务管理器保持空闲,即使事件数量增加到极端水平。
如果我遗漏了什么,请提出建议?
您已将并行度设置为 2,并为每个任务管理器分配了 2 个插槽。因此,单个任务管理器可以提供请求的并行度,这就是默认情况下会发生的情况。
如果您希望调度程序的行为有所不同,您可以设置
cluster.evenly-spread-out-slots: true
或者您可以将 taskmanager.numberOfTaskSlots
减少到 1。
我有以下设置:
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
在作业管理器的 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
使用上述配置,只有一个任务管理器处于活动状态,即获取流量,而另一个任务管理器保持空闲,即使事件数量增加到极端水平。
如果我遗漏了什么,请提出建议?
您已将并行度设置为 2,并为每个任务管理器分配了 2 个插槽。因此,单个任务管理器可以提供请求的并行度,这就是默认情况下会发生的情况。
如果您希望调度程序的行为有所不同,您可以设置
cluster.evenly-spread-out-slots: true
或者您可以将 taskmanager.numberOfTaskSlots
减少到 1。