不仅仅是流计算:Apache Flink®实践

为了让你更全面的了解Apache Flink,我们做了这本专刊。
用户头像
下载此书
不仅仅是流计算:Apache Flink®实践

最近的一份市场调查报告显示,Apache Flink 是 2018 年开源大数据生态中发展“最快”的引擎,和 2017 年相比增长了 125% 。为了让大家更为全面地了解 Flink,我们制作了一本电子干货合集:《不仅仅是流计算:Apache Flink 实践》,融合了 Apache Flink 在国内各大顶级互联网公司的大规模实践,希望对大家有所帮助。

在这本合集里,你可以了解到:

Flink 如何为整个阿里集团平稳度过双十一立下汗马功劳?
如何为满足滴滴极为复杂的业务需求提供简单直观的 API 支持?
如何在字节跳动逐步取代原有的 JStorm 引擎,成为公司内部流式数据处理的唯一标准?

目录

案例篇

阿里巴巴为什么选择 Apache Flink?
Apache Flink 在滴滴出行的应用与实践
字节跳动 Jstorm 到 Apache Flink 的迁移实践
Apache Flink 在美团的实践与应用
Apache Flink 在唯品会的实践
携程基于 Apache Flink 的实时特征平台

技术篇

一文了解 Apache Flink 核心技术
流计算框架 Flink 与 Storm 的性能对比
Spark VS Flink 下一代大数据计算引擎之争,谁主沉浮?
5 分钟从零构建第一个 Apache Flink 应用
Apache Flink 零基础实战教程:如何计算实时热门商品
Apache Flink SQL 概览
Apache Flink 类型和序列化机制简介
深度剖析阿里巴巴对 Apache Flink 的优化与改进

卷首语 为了让你更全面的了解 Apache Flink,我们做了这本专刊

作者:王绍翾(花名:大沙)

Qubole 最近的一份市场调查报告显示,Apache Flink 是 2018 年开源大数据生态中发展“最快”的引擎。和 2017 年相比增长了 125% 。为了让大家更为全面的了解 Flink,我和 InfoQ 的徐川联合制作了一本介绍 Apache Flink 的中文专刊。它融合了 Apache Flink 在国内各大顶级互联网公司的大规模实践。在这本专刊里你可以了解到:Flink 如何为整个阿里集团平稳度过双十一立下汗马功劳?如何为满足滴滴极为复杂的业务需求提供简单直观的 API 支持?如何在字节跳动逐步取代原有的 JStorm 引擎,成为公司内部流式数据处理的唯一标准?

Apache Flink 已经被业界公认是最好的流计算引擎。然而 Flink 的计算能力不仅仅局限于做流处理。Apache Flink 的定位是一套兼具流、批、机器学习等多种计算功能的大数据引擎。在最近的一段时间,Flink 在批处理以及机器学习等诸多大数据场景都有长足的突破。由于准备时间的仓促,本次专刊并没有收录很多关于 Flink 在这些新场景的进展的介绍。因此我撰写此文,旨在对 Flink 在大数据智能计算方面做一些简要的介绍。短短的一篇文字,不足以展现 Apache Flink 的全貌。我们后续还会组织发布更多关于 Apache Flink 的系列专刊。

不仅仅是流计算:Apache Flink®实践

在全面介绍 Flink 的新进展之前,我先来介绍一些大数据和人工智能计算的背景。大数据计算的种类非常多,比较典型的,且被大规模使用的主要是 3 种类型,批计算,流计算,和交互式分析计算。批计算的特点是计算的数据量比较大,但是往往对延迟不是特别敏感。流计算对延迟的要求非常高,这些作业的查询 query 往往是固定的。因此流计算作业往往需要提前调度起来,一旦数据到来就可以做快速的处理,节省了调度的开销。最后一种是交互式分析,这种类型的大数据计算的特点是用户的查询 query 是不固定的,这些 query 往往是由用户随机的发出的。虽然查询不固定,在这种场景下,用户对查询的返回时间是有一定的要求的,这个时间介于批处理和流处理之间,越快越好,最好能做到秒级。

不仅仅是流计算:Apache Flink®实践

人工智能计算的种类很多,但是整体架构大多和上图所描述的类似。一个常见的 ML pipeline 通常涉及一系列的数据预处理、特征提取和转换、模型训练以及验证。如果验证后的效果符合预期,就可以将模型推到线上服务。如果不符合预期,算法工程师就需要调整算法模型或者参数,然后再做一次模型的训练和验证,直到对结果满意后,再将训练好的模型推上线服务。整个计算过程可以是对一个确定大小的数据按照批计算模式计算,也可以接入实时数据按照流计算模式进行计算。上面这个 pipeline 是人工智能计算最基础的流程,如果算法工程师对数据以及业务特点非常熟悉,他们就能设计出合理的算法模型和参数。但是往往更常见的情况是,算法工程师需要分析工具帮助他们理解数据。只有在很好的理解了数据特点之后,才能提取出更有用的特征,设计出更好的模型。因此,如下图所示,做好人工智能计算,不可或缺的一部分就是交互式分析。有了交互式分析,算法工程师可以对数据做各种 ad-hoc query,从而帮助他们更好的理解数据。

不仅仅是流计算:Apache Flink®实践

综上所述,可以看出人工智能计算和大数据计算是密不可分的。虽然人工智能计算变得越来越炙手可热,人们越来越多的提及人工智能而不是大数据,但是我们不能忘记,人工智能计算的基础是大数据计算,没有大数据计算提供算力和功能,人工智能计算只能停留在纸上谈兵的阶段。接下来,我把基于大数据计算的人工智能计算简称为“大数据智能计算”。

不仅仅是流计算:Apache Flink®实践

大数据和 AI 全景–2018(来源: http://mattturck.com/bigdata2018/)

那么怎么来搭建一套大数据智能计算系统呢? http://mattturck.com 收集了所有大数据和 AI 的软件和平台。上面提到的每一种大数据计算场景都有好几种软件的选择,调研和选型这些软件本身就是一项巨大的工程。即使最后为每一套场景都选型了一种软件,那么后期的开发迭代和运维也难做到高效。因为每一套软件都需要专门的开发和运维团队负责,无论是在人力还是机器资源上都不能横向打通,势必会造成浪费。

不仅仅是流计算:Apache Flink®实践

因此,阿里巴巴一直在思考是否可能有一套计算引擎解决如上的所有问题。经过仔细的选型,我们选择了 Apache Flink,并围绕着 Flink 在打造一款通用计算引擎。Flink 已经被业界公认是最好的流计算引擎。它所具有的低延迟、高吞吐、保障 Exactly-once 的计算模式,使得它具有金融级的大数据处理能力。在批处理方面,基于流式的 flow 来处理批数据有着潜在的优势和扩展性。阿里巴巴利用 Flink 的天然特性,做了若干批计算方面的优化,使得 Flink 也成为了一款性能卓越的批计算引擎。在人工智能和交互式分析方面,我们也在逐步的完善 Flink 的易用性,生态,以及性能。另外,不得不提的是,Flink 的流处理架构天然的还适用于正在快速崛起的本质更像流计算的 IoT 的场景。

不仅仅是流计算:Apache Flink®实践

Flink 的社区和生态一直在壮大。在流计算和批计算等场景慢慢使用 Flink 成为主流的同时,我们期望设计和推广出更多更完善的批流融合的场景。所有对 Lamda 架构有诉求的应用应该都可以用 Flink 完美的解决。早期的 Lamda 架构的设计也许很快会成为历史。在易用性和生态方面,我们一方面帮助 Flink 社区在 TableAPI,Python,以及 ML 等诸多领域发力,持续提升用户做 Data Science 和 AI 计算的体验。另一方面,我们也在努力完善 Flink 和其他开源软件的融合,包括 Hive,以及 Notebook(Zeppelin, Jupyter)等等。这些诸多的努力,都是为了最终实现我们“一套引擎完美解决大数据智能计算”的初衷。Apache Flink 自 2014 年开源至今也才 4 年,我们期待更多的企业和开发者们和我们一起参与到 Apache Flink 的社区和生态建设中来,共同把它打造成为全球最一流的开源大数据引擎。

为了让中国的开发者更近距离的接触 Apache Flink,阿里巴巴在 2018 年 12 月 20 日到 21 日,在北京国家会议中心将承办 Flink Forward China 峰会。这是 Flink Forward 大会第一次在亚洲举行。届时将有超过 1000 名开发人员,系统/数据架构师,数据科学家,Apache Flink 核心贡献者齐聚一堂,交流他们使用 Flink 的经验和体验。参会者也将有机会近距离聆听和了解阿里巴巴、滴滴、美团、字节跳动、以及 Uber 等诸多 top 互联网公司使用 Apache Flink 的最佳实践。点击这里报名

免费下载此书(PDF)

收藏

评论

微博

用户头像
发表评论

注册/登录 InfoQ 发表评论