flink standalone 部署模式且不能使用 hdfs 场景下的各种问题及其应对方案

本文分析了Flink在standalone模式下不能使用HDFS的场景,面临的Job Manager高可用、Catalog管理和State Backend问题。解决方案包括使用Zookeeper替代HDFS进行HA存储,对于Catalog,可以选择内存Catalog并重新执行DDL,或在独立环境安装Hive。State Backend推荐使用FsStateBackend或RocksDBStateBackend,存储在本地文件系统。
摘要由CSDN通过智能技术生成

一。背景

笔者所在公司某系统在某证券公司现场部署时,客户出于自己集群使用规划的考量,不允许 flink 访问大数据集群,既不能使用yarn资源管理器,也不能访问hdfs文件系统,而该系统中中 flink 应用程序的数据链路是 flink sql 读取 kafka topic中的数据,进行计算分析后写到es中供下游业务系统使用,计算过程中使用到了 flink 的 table api和sql。

该场景其实是flinkstandalone 部署模式且不能使用 hdfs 的典型场景,我在这里汇总分析了下该场景下相关的技术问题,并结合flink相关技术点的细节和原理,给出了各个问题可能的解决方案,供大家参考。

问题主要分为三大类:jobmanager 高可用部署,catalog配置和使用,以及state backend 配置和使用。

以下是正文。

二。什么是 standalone 部署模式

首先明确下什么是 flink 的standalone 部署模式。

flink的 standalone 部署模式,即standalone deploy mode,是从 flink 集群的resource provider的角度说的,指的是flink直接在操作系统上启动flink 相关服务如client, jobmanager, taskmanager,而不依赖其它资源管理框架如yarn, mesos, k8s进行资源管理。

此时是由 flink直接来进行集群资源管理的,比如监控和重启失败的服务进程,分配和释放资源等等。

需要说明的是,standalone模式下,也可以结合使用docker和k8s (flink将使用k8s作为资源管理框架的模式称为native k8s mode,以跟standalone模式下的k8s进行区分)。

三。standalone 部署模式跟 hdfs 的关系

接着看下 standalone 部署模式跟 hdfs 的关系。

通过以上概念可以看出,flink的standalone模式,跟flink是否能访问大数据集群中的hdfs没有任何关系。

很多standalone模式的flink,仍然使用的是大数据集群中的hdfs,作为job manager 高可用部署的后端存储(high-availability.storageDir),作为 checkpoint 时状态快照的后端存储(state.checkpoints.dir/state.savepoints.dir)。

四。standalone 部署模式且不能使用hdfs场景下各种问题及其应对方案

  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明哥的IT随笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值