【工作】Flink源码目录结构全貌

基于 flink1.13.0 202105
flink-annotations

一些注解
flink-clients
客户端提交任务相关 包括Graph解析和转换
环境校验 与JobMaster通信等
flink-connectors
实现了一堆官方数据源连接器:Cassandra,Hbase,ES,Kafka,Hive,RabbitMQ,JDBC等
有几个需要重点关注
flink-file-sink-common:分布式数据入库框架,Bucket、Bulk写的抽象、文件管理、策略等
flink-connector-files:基于文件的各种数据源,Split、Reader、Format各种定义
flink-container
没啥用 pass
flink-contrib
没啥用 pass
flink-core
框架的核心
定义了类型系统、IO、内存模型、State、Operation、Transform、Function体系、Graph、Job、Task等抽象
是执行引擎
flink-dist
打大包的描述
flink-docs
文档
flink-end-to-end-tests
样例工程 只是更上层 如kafka-kafka
flink-examples
样例工程
flink-external-resources
外部资源框架的驱动如GPU
flink-filesystems
各种FS的适配如Hadoop、Amazon
flink-formats
应该是针对SQL模块的文件格式读写实现
CSV、AVRO、Parquet、ORC、JSON等
【需要细看】
flink-fs-tests
pass
flink-java
Java API 封装和一些共性类 环境操作等
flink-jepsen
好像是自动化测试相关的
flink-kubernetes
k8s集成
flink-libraries
图计算Gelly、复杂事件处理CEP框架、带状态处理函数State Procesing框架 几个库
【TODO 这里的State Procesing 和flink中的状态不是一个事情 这里更多应该是以状态函数为核心的分布式部署方式 不是计算中带状态】
flink-mesos
mesos集成 pass
flink-metrics
定义了指标系统和几个输出实现如log/jmx/promethus等
flink-optimizer
不清楚是不是针对SQL框架的优化器
flink-python
pass
flink-queryable-state
集群中状态共享和注册相关的?
flink-quickstart
pass
flink-runtime
【也是核心 运行时 实现 】
各种通信、调度、管理等
flink-runtime-web
pass
flink-scala
Scala API
flink-scala-shell
pass
flink-state-backends
状态存储后端
有heap/rocksdb实现
flink-streaming-java
流计算DataStream的定义相关和api
数据结构、Graph表示、水印、状态、Window实现等
flink-streaming-scala
scala版
flink-table
parser/planer/runtime 挺复杂的 SQL模块
flink-test-utils-parent
pass
flink-tests
pass
flink-walkthroughs
pass 文档里的例子工程
flink-yarn
pass
flink-yarn-tests
【【工作】Flink源码目录结构全貌】pass

    推荐阅读