Я управляю Flink v1.10 с 1 JobManager и 3 менеджерами задач в Docker Swarm, без Zookeeper. У меня есть работа, забирающая 12 слотов, и у меня 3 ТМ с 20 слотами в каждом (всего 60). После некоторых тестов все прошло хорошо, за исключением одного теста.
Итак, тест не пройден, если я вручную отменяю работу, повторная попытка выполняется второстепенной машиной, а диспетчер задач на консоли браузера не восстанавливается и продолжает уменьшаться.
Более практичный пример, поэтому я выполняю работу, потребляя всего 12 слотов из 60.
- Веб-консоль показывает мне 48 свободных слотов и 3 ТМ .
- Я отменяю задание вручную, боковой автомобиль повторно запускает задание, и веб-консоль показывает мне 36 свободных мест и 2 ТМ
- Ввод задания находится в состоянии сбоя, и слот будет продолжать уменьшаться до 0 свободных слотов и 1 TM показывает на консоли.
- Решение заключается в уменьшении и увеличении всех 3 ТМ, и все возвращается в нормальное состояние.
Все работает нормально с этой конфигурацией, менеджер по восстановлению восстанавливается, если я его удаляю, или если я увеличиваю или уменьшаю количество ТМ, но если я отменяю работу, ТМ, похоже, теряет связь с JM.
Есть предложения, что я делаю не так?
Вот мой flink-conf.yaml.
env.java.home: /usr/local/openjdk-8
env.log.dir: /opt/flink/
env.log.file: /var/log/flink.log
jobmanager.rpc.address: jobmanager1
jobmanager.rpc.port: 6123
jobmanager.heap.size: 2048m
#taskmanager.memory.process.size: 2048m
#env.java.opts.taskmanager: 2048m
taskmanager.memory.flink.size: 2048m
taskmanager.numberOfTaskSlots: 20
parallelism.default: 2
#==============================================================================
# High Availability
#==============================================================================
# The high-availability mode. Possible options are 'NONE' or 'zookeeper'.
#
high-availability: NONE
#high-availability.storageDir: file:///tmp/storageDir/flink_tmp/
#high-availability.zookeeper.quorum: zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
#high-availability.zookeeper.quorum:
# ACL options are based on https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#sc_BuiltinACLSchemes
# high-availability.zookeeper.client.acl: open
#==============================================================================
# Fault tolerance and checkpointing
#==============================================================================
# state.checkpoints.dir: hdfs://namenode-host:port/flink-checkpoints
# state.savepoints.dir: hdfs://namenode-host:port/flink-checkpoints
# state.backend.incremental: false
jobmanager.execution.failover-strategy: region
#==============================================================================
# Rest & web frontend
#==============================================================================
rest.port: 8080
rest.address: jobmanager1
# rest.bind-port: 8081
rest.bind-address: 0.0.0.0
#web.submit.enable: false
#==============================================================================
# Advanced
#==============================================================================
# io.tmp.dirs: /tmp
# classloader.resolve-order: child-first
# taskmanager.memory.network.fraction: 0.1
# taskmanager.memory.network.min: 64mb
# taskmanager.memory.network.max: 1gb
#==============================================================================
# Flink Cluster Security Configuration
#==============================================================================
# security.kerberos.login.use-ticket-cache: false
# security.kerberos.login.keytab: /mobi.me/flink/conf/smart3.keytab
# security.kerberos.login.principal: smart_user
# security.kerberos.login.contexts: Client,KafkaClient
#==============================================================================
# ZK Security Configuration
#==============================================================================
# zookeeper.sasl.login-context-name: Client
#==============================================================================
# HistoryServer
#==============================================================================
#jobmanager.archive.fs.dir: hdfs:///completed-jobs/
#historyserver.web.address: 0.0.0.0
#historyserver.web.port: 8082
#historyserver.archive.fs.dir: hdfs:///completed-jobs/
#historyserver.archive.fs.refresh-interval: 10000
blob.server.port: 6124
query.server.port: 6125
taskmanager.rpc.port: 6122
high-availability.jobmanager.port: 50010
zookeeper.sasl.disable: true
#recovery.mode: zookeeper
#recovery.zookeeper.quorum: zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
#recovery.zookeeper.path.root: /
#recovery.zookeeper.path.namespace: /cluster_one