flink on yarn之per-job方式部署超时的一种解决方法

网上很多写的很乱,看不明白,故此记录。

前提:
flink版本:1.10.0
zk集群
hadoop集群

一、flink-session方式

  • 在yarn中启动一个长久运行的flink集群,提交任务时都提交到这个flink-session集群中运行,适合小任务。
  • 做HA:保证YarnSessionClusterEntrypoint的高可用,需要在yarn里配置yarn.resourcemanager.am.max-
    attempts,在flink-conf.yaml中添加high-availiability的配置
  • 提交任务命令:
      先启动yarn-session,
      然后直接flink run ..

二、per-job方式

  • 每次提交任务都单独启动一个flink集群,适合长久运行的大任务。
  • HA:per-job的高可用是复用的 standalone HA 的,所以需要配置flink的standalone HA和yarn.application-attempts: 3
  • 提交任务命令:
    flink run -m yarn-cluster -yqu root.myjob1 ..

三、per-job方式在yarn上一直是accept状态,flink报错:deployment took more than 60 secoeds

flink还不完善,也不想诟病了
分析:我这里是,由于yarn调度器实际上是一个队列,在yarn-cluster选项中有-yqu这个参数,表示指定一个队列,如果你已经提交了一个per-job任务,再次提交必须指定一个新的队列名称,否则他会一直等待之前的任务结束后,新的job才能running,所以一直是accept。

解决:flink run -m yarn-cluster -yqu root.myjob1 ..

另:flink1.10已经不必需要-yn了,它会自动去检测。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容