基于docker部署flink job的总结

基于docker部署flink job的总结,第1张

基于docker部署flink job的总结

近期,由于项目需要,对于基于docker进行flink job部署进行了小规模测试,顺便对于flink运行机制进行了深入的了解。

为了达到快速部署和基础环境稳定的目的,考虑使用docker部署(k8s基础环境搭建复杂,调研中未使用),参考官方文档如下:

Docker | Apache Flink

flink部署模式有下列三种:

  1. session,全局单一cluster,所有的job运行于单一集群,全局只有一个job manager
  2. application,每个job有一个job manager,job manager分配task manager
  3. per-job,每个job有一个job manager,job manager分配task manager,但job graph由job manager生成

基于docker部署时,不支持per-job mode,我们选择application mode进行部署。

如果选择基于local file进行checkpoint,需要将container内checkpoint所在的目录进行volume至宿主机,保证docker restart时能够从上次的checkpoint开始消费。

使用的基础镜像为flink:1.12.7-scala_2.11-java8

在per-job mode中,我们向job manager传递parallelism.default参数,指定该job需要的task slot总数,然后由yarn或者但在docker部署中,由于缺失统一的资源调度工具,只能手动设置task manager的scale和taskmanager.numberOfTaskSlots,保证task manager的数量,缺乏扩容能力。因此,在生产环境部署中,推荐使用native k8s + application mode部署flink任务。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5687135.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存