开发者社区> 问答> 正文

Flink HA JobManager集群无法选择leader

我正在尝试在kubernetes上部署Apache Flink 1.6。按照作业管理器高可用性 页面上的教程进行操作。我已经从它的日志中找到了一个有效的Zookeeper 3.10集群我可以看到它没有配置为Kerberos或SASL。所有ACL规则都允许每个客户端写入和读取znode。当我启动集群时,一切都按预期工作,每个JobManager和TaskManager窗口都成功进入运行状态,我可以从主JobManager的web-ui中看到连接的TaskManager实例。但是当我删除主JobManager的pod时,另一个JobManager pod无法在群集中的任何JobManager-UI上选择带有以下错误消息的leader。
{
"errors": [

"Service temporarily unavailable due to an ongoing leader election. Please refresh."

]
}
即使我重新启动此页面也没有任何变化。它坚持这个错误消息。我怀疑,问题与high-availability.storageDir选项有关。我已经有一个工作(使用CloudExplorer测试) minio s3部署到我的k8s集群。但flink 无法向s3服务器写任何东西。在这里你可以找到github-gist的每个配置。

展开
收起
flink小助手 2018-12-10 13:16:02 13906 0
2 条回答
写回答
取消 提交回答
  • 我也遇到了楼主同样的报错,我这边是因为flink 配置文件 flink-conf.yaml 中 配置了 high-availability.cluster-id: /cluster_one,这时如果使用同一个配置文件启动多个flink yarn session,会导致 high-availability.cluster-id 冲突,
    解决方法是:
    1.去掉该配置项 high-availability.cluster-id: /cluster_one。
    2.每启动一个flink yarn session之前,修改 high-availability.cluster-id的值为不同的值,然后同步配置文件到整个集群中

    2019-07-17 23:19:12
    赞同 展开评论 打赏
  • flink小助手会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关flink的问题及回答。

    根据日志,它看起来好像TaskManager无法连接到新的leader。我认为这对于web ui来说是一样的。日志说它试图连接到flink-job-manager-0.flink-job-svc.flink.svc.cluster.local/10.244.3.166:44013。我不能从日志中说是否flink-job-manager-1绑定到此IP。但我怀疑无头服务可能会返回多个IP而Flink选择错误/旧的IP。你能登录flink-job-manager-1pod并检查它的IP地址是什么吗?

    我认为您应该能够通过为每个JobManager专用服务定义或者使用pod主机名来解决此问题。

    2019-07-17 23:19:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载