浅议Flink lib包下的依赖项

 

要开始一个 Flink 作业,通常需要如下依赖项:
1. Flink API,用来开发你的作业
2. 连接器和格式,以将你的作业与外部系统集成 比如kakfa,hbase模块
3. 若要开发自定义功能,还要添加必要的第三方依赖项比如fastjson等

其中1所需要的依赖已经在安装包lib文件夹下的flink-dist_xx.jar中,在IDEA等中编译程序时需要将相关依赖置为 provied。2、3则需要将应用程序代码及其所有需要的依赖项打包到一个 jar-with-dependencies 的 jar 包中。

flink-dist_xx.jar(下图黄色框)是 Flink 自身运行时所需的一组核心类和依赖,涵盖以下内容:

  • • 协调和网络通讯

  • • Checkpoint 和容错处理

  • • API 和算子(如窗口操作)

  • • 资源管理等

这些类和依赖构成了 Flink 运行时的核心。为了保持足够的精简,这个 JAR 不包含连接器和特定类库(如 CEP、SQL、ML 等)。

/lib 目录的其他依赖

/lib 目录中还包括一些常用模块的 JAR 文件,例如:

  • • Table 模块(上图绿色框)

  • • 数据格式支持模块(如 CSV、JSON 格式)

这些模块默认情况下会被自动加载。如果希望禁止加载某些模块,只需将对应的 JAR 文件从 classpath 的 /lib 目录中移除。

/opt 目录中的可选依赖

Flink 还在 /opt 文件夹中提供了额外的可选依赖项。需要启用时,可以将这些 JAR 文件移动到 /lib 目录中进行加载。

相关推荐
starzy19905 小时前
Flink ApplicationMaster启动流程源码深度剖析:从YARN提交到JobMaster启动的完整链路
大数据·flink
用户3610588626121 天前
Flink Sliding Window 详解及代码实现:从窗口重叠到状态爆炸防控
大数据·flink
starzy19902 天前
Flink 提交任务源码深度剖析:从CliFrontend到JobMaster的完整提交链路
大数据·flink
starzy19903 天前
Flink Rpc通信源码级详解:从RpcService到动态代理的完整调用链路
大数据·rpc·flink
starzy19904 天前
Flink Akka底层原理深度剖析:从ActorSystem到Dispatcher调度器的底层实现
大数据·flink
nvd114 天前
# 从 192 秒到 13 秒:Apache Flink 批处理极速调优实战记录
大数据·flink·apache
starzy19905 天前
Flink 优化之网络缓存优化及参数详解:从数据传输机制到反压原理的生产调优指南
网络·缓存·flink
智码看视界6 天前
Edge AI 全栈实战 ④:向量数据库 + RAG 让 IoT 诊断拥有“记忆“
flink·向量数据库·rag·全栈开发·edgeai·iot诊断
starzy19907 天前
Flink 优化之 CheckPoint 优化及参数详解:从原理到生产环境调优的完整指南
大数据·flink
nvd117 天前
深入解构 Flink FLIP-27 数据摄取内核:从 env.execute() 到工业级 Source 运行机制
大数据·flink