Flink on yarn seeion后,task slot一直显示为0

Flink on yarn seeion后,task slot一直显示为0,怎么解决?

img

Flink on YARN session启动后,任务槽(task slot)一直显示为0,通常有以下几个原因:

  1. YARN中Flink组件没有启动。Flink on YARN需要在YARN集群上启动Flink组件,包括JobManager、TaskManager等。如果这些组件没有启动,会导致task slot为0。
    解决方法:在YARN上启动Flink组件。可参考Flink文档:https://nightlies.apache.org/flink/flink-docs-release-1.11/docs/deployment/resource-providers/yarn/
  2. YARN中Flink组件启动超时。Flink组件启动需要一定时间,如果在YARN上分配的时间不足,会导致启动失败,task slot为0。
    解决方法:增加Flink on YARN的启动超时时间。在Flink配置文件flink-conf.yaml中增加:
    yarn.application-attempts: 10 # Application launch attempts
    yarn.application-trys: 10 # application-launch try

yarn.application-master.timeout: 300000 # Timeout for application master startup
yarn.application-master.timeout: 300000 # Application master 启动超时
3. 任务槽资源不足。如果YARN集群资源不足,无法为Flink on YARN session分配需要的任务槽(task slot),会导致任务槽数量为0。
解决方法:增加YARN集群资源或减少Flink on YARN对任务槽的资源需求。可以在Flink配置文件中减少taskmanager.numberOfTaskSlots 的数量。
4. 其他YARN或网络问题。YARN服务异常、网络分区等其他问题也有可能导致Flink on YARN session上的任务槽为0。

解决方法:根据报错信息进一步判断并修复问题。可能需要重启YARN服务、检查YARN日志与Flink日志等。

综上,出现Flink on YARN上任务槽为0的问题,通常与YARN上Flink组件的启动部署或者资源分配相关。主要的解决方法是:

  1. 确认YARN上Flink组件是否正常启动,如果未启动则启动Flink组件。
  2. 增加Flink组件的启动超时时间,防止因为超时导致启动失败。
  3. 检查YARN集群资源是否充足,如不充足增加资源或减小Flink对资源的需求。
  4. 查看YARN与Flink日志,进一步判断并修复其他可能的YARN或网络问题。