【工作】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

pass

你可能感兴趣的:(【工作】Flink源码目录结构全貌)