Flink 原理、实战与性能优化 (3):Apache Flink 介绍 1.2.2

阅读数:10 2019 年 12 月 11 日 20:38

Flink原理、实战与性能优化(3):Apache Flink介绍 1.2.2

(大数据数据架构)

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

起初数据仓库主要还是构建在关系型数据库之上,例如 Oracle、Mysql 等数据库,但是随着企业数据量的增长,关系型数据库已经无法支撑大规模数据集的存储和分析,因此越来越多的企业开始选择基于 Hadoop 构建企业级大数据平台。同时众多 Sql-On-Hadoop 技术方案的提出,也让企业在 Hadoop 上构建不同类型的数据应用变得简单而高效,例如通过使用 Apache Hive 进行数据 ETL 处理,通过使用 Apache Impala 进行实时交互性查询等。

大数据技术的兴起,让企业能够更加灵活高效地使用自己的业务数据,从数据中提取出更多重要的价值,并将数据分析和挖掘出来的结果应用在企业的决策、营销、管理等应用领域。但不可避免的是,随着越来越多新技术的引入与使用,企业内部一套大数据管理平台可能会借助众多开源技术组件实现。例如在构建企业数据仓库的过程中,数据往往都是周期性的从业务系统中同步到大数据平台,完成一系列 ETL 转换动作之后,最终形成数据集市等应用。但是对于一些时间要求比较高的应用,例如实时报表统计,则必须有非常低的延时展示统计结果,为此业界提出一套 Lambda 架构方案来处理不同类型的数据。例图 1-3 所示,大数据平台中包含批量计算的 Batch Layer 和实时计算的 Speed Layer,通过在一套平台中将批计算和流计算整合在一起,例如使用 Hadoop MapReduce 进行批量数据的处理,使用 Apache Storm 进行实时数据的处理。这种架构在一定程度上解决了不同计算类型的问题,但是带来的问题是框架太多会导致平台复杂度过高、运维成本高等。在一套资源管理平台中管理不同类型的计算框架使用也是非常困难的事情。总而言之,Lambda 架构是构建大数据应用程序的一种很有效的解决方案,但是还不是最完美的方案。

Flink原理、实战与性能优化(3):Apache Flink介绍 1.2.2

图 1-3 大数据 Lambada 架构

后来随着 Apache Spark 的分布式内存处理框架的出现,提出了将数据切分成微批的处理模式进行流式数据处理,从而能够在一套计算框架内完成批量计算和流式计算。但因为 Spark 本身是基于批处理模式的原因,并不能完美且高效地处理原生的数据流,因此对流式计算支持的相对较弱,可以说 Spark 的出现本质上是在一定程度上对 Hadoop 架构进行了一定的升级和优化。

Flink原理、实战与性能优化(3):Apache Flink介绍 1.2.2

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

评论

发布