首页 > 解决方案 > 如何在 Mesos Flink 集群中实现 JobManager 高可用?

问题描述

Flink 官方文档提供了 Standalone 和 Yarn Flink 集群的 jobmanager 高可用解决方案。但是对于使用 Mesos Flink 集群的高可用性应该怎么做呢?

我了解到 Flink 依赖 Marathon 来启动一个失败的 JobManager,但它带来了一个问题:每次 jobmanager 重启时,作业都会重新部署。这对于任务关键型工作是不可接受的。这个问题有解决方法吗?或者是否有计划在 Mesos 模式下使用 Flink 支持完全 HA?

标签: apache-flinkmesoshigh-availabilitymarathon

解决方案


我在 Flink 中使用了这个配置,它确实适用于两个 mesos master 和一个 slave:

high-availability: zookeeper
high-availability.storageDir: hdfs:///flink/ha/
high-availability.zookeeper.quorum: 0.0.0.0:2181,10.32.0.3:2181,10.32.0.4:2181,10.32.0.5:2181
fs.hdfs.hadoopconf: /opt/hadoop/etc/hadoop
fs.hdfs.hdfssite: /opt/hadoop/etc/hadoop/hdfs-site.xml
recovery.zookeeper.path.mesos-workers: /mesos-workers
env.java.home: /opt/java
mesos.master: 10.32.0.2:5050,10.32.0.3:5050

另外,我在 Marathon 中使用了这个 JSON 文件:

{
 "id": "flink",
 "cmd": "/home/flink-1.7.2/bin/mesos-appmaster.sh -Djobmanager.heap.mb=1024 -Djobmanager.rpc.port=6123 -Drest.port=8081 -Dmesos.resourcemanager.tasks.mem=1024 -Dtaskmanager.heap.mb=1024 -Dtaskmanager.numberOfTaskSlots=2 -Dparallelism.default=2 -Dmesos.resourcemanager.tasks.cpus=1",
"cpus": 1.0,
"mem": 1024,
 }

我希望它有用。


推荐阅读