apache-flink - 如何在 Mesos Flink 集群中实现 JobManager 高可用?
问题描述
Flink 官方文档提供了 Standalone 和 Yarn Flink 集群的 jobmanager 高可用解决方案。但是对于使用 Mesos Flink 集群的高可用性应该怎么做呢?
我了解到 Flink 依赖 Marathon 来启动一个失败的 JobManager,但它带来了一个问题:每次 jobmanager 重启时,作业都会重新部署。这对于任务关键型工作是不可接受的。这个问题有解决方法吗?或者是否有计划在 Mesos 模式下使用 Flink 支持完全 HA?
解决方案
我在 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,
}
我希望它有用。
推荐阅读
- node.js - Node.JS webapp:身份验证、创建帐户、忘记密码和更改密码
- python - OpenAPI & Python:如何使用 apiKey 安全方案?
- c# - txt 文件中的索引超出范围
- python - 从 csv 输出中删除科学记数法
- node.js - NodeJS 中的 DIGEST-MD5 实现
- c - C - valgrind:未初始化的值与 printf
- python - 循环遍历数据框行以进行 curl
- kubernetes - EKS Ingress ALB 为某些服务添加 HTTP 侦听器,为其他服务添加 HTTPS
- javascript - 从数据库获取数据后,接下来如何使用 JS 将数据显示到 HTML 上?
- android - 如何验证付费应用没有退款