浅议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 目录中进行加载。

相关推荐
Hello.Reader15 小时前
Flink Table API & SQL 概念、常用 API 与工程落地
大数据·sql·flink
代码匠心2 天前
从零开始学Flink:事件驱动
java·大数据·flink·大数据处理
easy_coder2 天前
从HDFS NN报错看Flink+K8s+HDFS:基础、架构与问题关联
hdfs·flink·kubernetes
临风赏月2 天前
Hadoop、Kafka、Flink、Spark、Hive五大组件运维常用操作命令
hadoop·flink·kafka
猫猫姐姐2 天前
Flink基于Paimon的实时湖仓解决方案的演进
大数据·flink·湖仓一体
wudl55663 天前
Flink RocksDB State Backend 详解
大数据·flink
Hello.Reader3 天前
用一份 YAML 编排实时数据集成Flink CDC 工程实践
大数据·flink
不二人生3 天前
从 Flink 到 Doris 的实时数据写入实践 —— 基于 Flink CDC 构建更实时高效的数据集成链路
大数据·flink·cdc
Hello.Reader3 天前
用 Flink CDC 将 MySQL 实时同步到 Doris
大数据·mysql·flink