开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink中报错直接启动不了,进而导致pod里面的JM起不来了,该怎么办呢?

我的部署方式是flink on native k8s,使用application模式。其中,为了对接相关平台,我flink-conf.yaml中配置的jobmanager.rpc.address,没有用原生的servicename.namespace方式,而是使用了servicename直接指定。为此,我改造了flink-1.14.0\flink-kubernetes\src\main\java\org\apache\flink\kubernetes\kubeclient\decorators\InternalServiceDecorator.java类,把其中的getNamespacedInternalServiceName方法里的namespace直接干掉了。 但是这样做之后,出现了ERROR org.apache.flink.runtime.resourcemanager.active.ActiveResourceManager [] - Fatal error occurred in ResourceManager. org.apache.flink.runtime.resourcemanager.exceptions.ResourceManagerException: Could not start the ResourceManager akka.tcp://flink@flinksqldemo-rpc:6123/user/rpc/resourcemanager_1的报错,看起来这么搞,resourcemanager直接启动不了,进而导致pod里面的JM起不来了,该怎么办呢?lALPD4PvWBLQA1fNAeHNBp0_1693_481.png

展开
收起
圆葱猪肉包 2023-04-19 16:44:41 831 0
2 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    从错误信息看,出现了Could not start the ResourceManager的异常,可能是因为ResourceManager无法连接到想要通信的Pod的IP地址和端口。这可能与您在flink-conf.yaml中使用了servicename直接指定的方式有关,因为没有使用namespace方式,所以可能会导致无法正确解析出需要通信的Pod的IP地址和端口。

    为了解决这个问题,建议您恢复InternalServiceDecorator.java类中getNamespacedInternalServiceName方法里的namespace相关的逻辑,使其能够正确地获取作业管理器服务的地址。另外,可以尝试使用命名空间方式指定jobmanager.rpc.address来解决该问题,以保证ResourceManager能够正确地连接到作业管理器。

    2023-04-30 22:53:12
    赞同 展开评论 打赏
  • 当时这个报错我排查出来是权限的问题,命名空间里面的角色不是 serviceAccount, 此回答整理自钉群“【③群】Apache Flink China社区”

    2023-04-19 22:40:23
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    ACK 云原生弹性方案—云原生时代的加速器 立即下载
    ACK集群类型选择最佳实践 立即下载
    企业运维之云原生和Kubernetes 实战 立即下载

    相关镜像