美文网首页
flink on yarn之per-job方式部署超时的一种解决

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

作者: 半缘_1ec0 | 来源:发表于2020-06-22 22:15 被阅读0次

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

前提:
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了,它会自动去检测。

相关文章

网友评论

      本文标题:flink on yarn之per-job方式部署超时的一种解决

      本文链接:https://www.haomeiwen.com/subject/rroffktx.html