官术网_书友最值得收藏!

1.3 Flink源代碼的目錄結構

Flink源代碼的目錄主體結構如圖1-7所示。

018-1

圖1-7 Flink源代碼目錄結構

接下來對Flink目錄下的模塊進行簡單介紹。

(1)Flink主體模塊

  • flink-annotations:主要提供定義文檔方面的注解,以及類、方法使用范圍的注解。
  • flink-clients:提供本地模式和Standalone模式的啟動方式的提交實現,并提供其他模式的啟動接口;提供作業的編譯、提交以及對已運行作業進行查看等功能。
  • flink-core:提供通用的API、通用的工具包、各種配置相關的實現、各種數據類型及解析;提供核心文件系統的抽象接口和通用方法,以及內存管理部分和Flink I/O部分的接口。
  • flink-dist:提供Flink構建打包的配置和相關腳本。
  • flink-java:提供Flink批處理DataSet的Java API。
  • flink-metrics:提供Flink Metric注冊的核心實現以及各種Metric Reporter。
  • flink-ml-parent:提供機器學習的基本抽象模型與接口。原來的版本中有基本的機器學習庫,不過該庫在Flink 1.9版本中被移除。
  • flink-optimizer:主要提供編譯作業,生成優化后的執行計劃(Plan)。
  • flink-python:提供Flink Python的運行支持,以及Python DataStream、DataSet和Table API。
  • flink-queryable-state:提供查詢狀態的Client API和查詢狀態的服務。
  • flink-runtime:提供運行時各個通信組件的實現、數據傳輸、HA服務、blob服務、檢查點等(后文會詳細介紹)。
  • flink-runtime-web:Flink Web部分,提供外部的REST API及Web UI。
  • flink-scala:提供Flink批處理DataSet的Scala API。
  • flink-state-backends:在flink-state-backends中只有RocksDB backend(RocksDB后端處理組件)的實現模塊,file backend(文件后端處理組件)、memory backend(內存狀態后端處理組件)等其他狀態后端處理組件的實現都在flink-runtime模塊中。
  • flink-streaming-java:提供Flink流處理DataStream的Java API。
  • flink-streaming-scala:提供Flink流處理DataStream的Scala API。
  • flink-table:提供Flink Table的Java API、Scala API、SQL解析、SQL客戶端以及關于Table的運行時。

(2)Flink部署模塊

  • flink-container:提供構建Flink鏡像的Docker配置和Flink on Kubernetes的相關YAML的模板(如taskmanager.deployments.yaml.template)。
  • flink-mesos:Flink on Mesos的部署模式的啟動和集群的管理。
  • flink-yarn:Flink on YARN的部署模式的啟動和集群的管理。

(3)Flink測試模塊

  • flink-end-to-end-tests:Flink端到端的測試。
  • flink-fs-tests:Flink文件系統的測試。
  • flink-jepsen:基于Jepsen的測試,通過模擬異常來驗證Flink引擎的健壯性。
  • flink-test-utils-parent:Flink測試的一些基本工具類。
  • flink-tests:Flink重要模塊的集成測試。
  • flink-yarn-tests:Flink on YARN的集成測試。

(4)Flink其他模塊

  • flink-contrib:提供Docker啟動Flink的方式和Wikipedia的connector。
  • flink-connectors:多種Flink connector的實現和API。
  • flink-docs:Flink文檔的生成方式的實現。
  • flink-examples:一些Flink的應用實例。
  • flink-filesystems:Flink對HDFS、S3、Azure等多種文件系統的支持和實現。
  • flink-formats:Flink對Avro、Parquet、CSV、JSON等格式的支持。
  • flink-libraries:CEP、Gelly的實現,Scala、Java API和狀態操作的API。
  • flink-quickstart:兩個分別使用Scala和Java實現的完整Flink應用實例。對應官網quick start的應用源代碼。
  • flink-scala-shell:實現類似于Spark shell、支持交互式的Scala shell。
  • flink-shaded-curator:Flink curator的Shade實現。
  • tools:支持Shade、CheckStyle、Releasing等項目代碼管理的工具。
主站蜘蛛池模板: 郯城县| 定陶县| 娱乐| 调兵山市| 顺昌县| 远安县| 花垣县| 西畴县| 宁国市| 噶尔县| 邮箱| 琼结县| 红原县| 宜宾市| 太仆寺旗| 和平县| 林甸县| 嘉禾县| 微博| 德安县| 桐乡市| 乡宁县| 中牟县| 恩平市| 威远县| 远安县| 读书| 资阳市| 东台市| 玉林市| 克拉玛依市| 常德市| 如皋市| 神农架林区| 邛崃市| 浑源县| 阜康市| 青神县| 长武县| 乐东| 东城区|