Flink 原理、实战与性能优化 (7):Apache Flink 介绍 1.4&1.4.1

阅读数:16 2019 年 12 月 11 日 20:40

Flink原理、实战与性能优化(7):Apache Flink介绍 1.4&1.4.1

(Flink 基本架构)

内容简介
这是一部以实战为导向,能指导读者零基础掌握 Flink 并快速完成进阶的著作,从功能、原理、实战和调优等 4 个维度循序渐进地讲解了如何利用 Flink 进行分布式流式应用开发。作者是该领域的资深专家,现就职于第四范式,曾就职于明略数据。
全书一共 10 章,逻辑上可以分为三个部分:
第一部分(第 1~2 章)
主要介绍了 Flink 的核心概念、特性、应用场景、基本架构,开发环境的搭建和配置,以及源代码的编译。
第二部分(第 3~9 章)
详细讲解了 Flink 的编程范式,各种编程接口的功能、应用场景和使用方法,以及核心模块和组件的原理和使用。
第三部分(第 10 章)
重点讲解了 Flink 的监控和优化,参数调优,以及对反压、Checkpoint 和内存的优化。


(基本组件栈)

在 Flink 整个软件架构体系中,同样遵循着分层的架构设计理念,在降低系统耦合度的同时,也为上层用户构建 Flink 应用提供了丰富且友好的接口。

从图 1-5 中可以看出整个 Flink 的架构体系基本上可以分为三层,由上往下依次是 API & Libraries 层、Runtime 核心层以及物理部署层。

  • API&Libraries 层

作为分布式数据处理框架,Flink 同时提供了支撑流计算和批计算的接口,同时在此基础之上抽象出不同的应用类型的组件库,如基于流处理的 CEP(复杂事件处理库)、SQL&Table 库和基于批处理的 FlinkML(机器学习库)等、Gelly(图处理库)等。API 层包括构建流计算应用的 DataStream API 和批计算应用的 DataSet API,两者都提供给用户丰富的数据处理高级 API,例如 Map、FlatMap 操作等,同时也提供比较低级的 Process Function API,用户可以直接操作状态和时间等底层数据。

Flink原理、实战与性能优化(7):Apache Flink介绍 1.4&1.4.1

图 1-5 Flink 基本组件栈
  • Runtime 核心层

该层主要负责对上层不同接口提供基础服务,也是 Flink 分布式计算框架的核心实现层,支持分布式 Stream 作业的执行、JobGraph 到 ExecutionGraph 的映射转换、任务调度等。将 DataSteam 和 DataSet 转成统一的可执行的 Task Operator,达到在流式引擎下同时处理批量计算和流式计算的目的。

  • 物理部署层

该层主要涉及 Flink 的部署模式,目前 Flink 支持多种部署模式:本地、集群(Standalone/YARN)、云(GCE/EC2)、Kubenetes。Flink 能够通过该层能够支持不同平台的部署,用户可以根据需要选择使用对应的部署模式。

Flink原理、实战与性能优化(7):Apache Flink介绍 1.4&1.4.1

购书地址 https://item.jd.com/12518733.html?dist=jd

评论

发布