通过 GOOGLE 大数据计算平台演进理解 APACHE FLINK 前世今生

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过 GOOGLE 大数据计算平台演进理解 APACHE FLINK 前世今生相关的知识,希望对你有一定的参考价值。

一、背景

2019年1月,伴随 APACHE FLINK 母公司 Data Artisans 被 收购 ,FLINK 毫无争议成为继 SPARK 之后的新一代大数据计算平台,本文希望通过 GOOGLE 计算平台演进来更好的理解 FLINK。

二、GOOGLE 大数据计算平台演进

GOOGLE 作为搜索引擎的顶级公司,需要处理海量数据,其大数据计算平台的演进是行业的风向标;本文通过 GOOGLE 在该领域发表的论文进行剖析,希望从中提取一些演进的主线。

2.1 分布式的三篇经典

  • 2003年,[The Google File System: a scalable distributed file system for large distributed data-intensive applications](The Google File System)。大规模分布式文件系统,提供数据存储的公共平台。
  • 2004年,MapReduce: Simplified Data Processing on Large Clusters。大规模集群的数据处理框架,提供了海量数据分析的计算框架,Apache Hadoop 基于此论文构建了开源领域的第一代大数据处理框架。
  • 2006年,Bigtable: A Distributed Storage System for Structured Data。分布式结构化数据存储,是 NOSQL 的先驱。

MapReduce 发布后声名鹊起,不过在未来的技术发展中也受到了来自数据库领域大牛的挑战。2008年,数据库大牛 David DeWitt 发表 MapReduce: A major step backwards ,反馈 MapReduce 是数据库领域的技术倒退;2010年,GOOGLE 大神及论文作者 Jeffrey Dean 和 Sanjay Ghemawat 发表文章 MapReduce: A Flexible Data Processing Tool ,对比了 Parallel Databases 和 MapReduce, 并强调了 MapReduce 的场景和优势;同年,图灵奖获得者 Michael Stonebraker 与一帮数据库牛人发表 MapReduce and Parallel DBMSs: Friends or Foes ,认为 MapReduce 更像是一种 ETL(Extract Transform Load)。 由此可见,大数据计算框架必然和数据库领域技术进行碰撞,也会引入新的观点和方向。

2.2 计算框架技术演进

计算框架论文 简介 发表时间 第一作者
并行数据分析 Sawzall Interpreting the data: Parallel analysis with Sawzall 2005 Rob Pike, Sean Dorward, Robert Griesemer and Sean Quinlan
并行数据处理流水线 FlumeJava Easy, Efficient Data-Parallel Pipelines 2010 Craig Chambers, Ashish Raniwala, Frances Perry, etc.
图处理 Pregel A System for Large-Scale Graph Processing 2010 Grzegorz Malewicz, Matthew H. Austern, Aart J. C. Bik, etc.
交互式数据分析 Dremel Interactive Analysis of Web-Scale Datasets 2010 Sergey Melnik, Andrey Gubarev, Jing Jing Long, etc.
基于 MR 的 SQL Tenzing A SQL Implementation On The MapReduce Framework 2011 Biswapesh Chattopadhyay, Liang Lin, Weiran Liu, etc.
大规模数据增量处理 Percolator Large-scale Incremental Processing Using Distributed Transactions and Notifications 2011 Daniel Peng, Frank Dabek
高效列存 PowerDrill Processing a Trillion Cells per Mouse Click 2012 Alexander Hall, Olaf Bachmann, Robert Bussow, etc.
流处理框架 MillWheel Fault-Tolerant Stream Processing at Internet Scale 2013 Tyler Akidau, Alex Balikov, Kaya Bekiroglu, etc.
近实时数据仓库 Mesa Geo-Replicated, Near Real-Time, Scalable Data Warehousing 2014 Ashish Gupta, Fan Yang, Jason Govig, etc.
大规模实时/离线数据分析 Dataflow A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processing 2015 Tyler Akidau, Robert Bradshaw, Craig Chambers, etc.
支撑广告业务的交互式报表 Shasta Interactive Reporting At Scale 2016 Gokul Nath Babu Manoharan, Stephan Ellner, Karl Schnaitterα, etc.
数据集组织 Goods Organizing Google’s Datasets 2016 Alon Halevy, Flip Korn, Natalya F. Noy, etc.

其中, Dataflow 基于 MapReduce (批处理框架), FlumeJava (并行数据处理流水线 ) 和 MillWheel (流处理框架) 技术演进而来,是大数据计算框架的融合。Dataflow 和 Beam比 Spark 更新的技术,可以通过如下文章深入掌握 Dataflow 的设计原理:

三、APACHE FLINK 前世今生

根据 Slim Baltagi 的 Unified Batch and Real-Time Stream Processing Using Apache Flink 材料可以更深入的理解 FLINK。

3.1 场景和需求

技术图片

从支撑的场景来看,包含 Batch 批处理的脚本语言和应用、Streaming 的流处理、Graph 的图形处理、以及时下流行的 Machine Learning,而且从应用编程的角度看,采用统一框架支持多种模型,会带来更好的用户体验。

3.2 架构

技术图片

从架构分层看:

  • 存储是关键的数据底座,支持 Files、DataBases、Streams 三种类型。
  • 部署纬度上,提供 Local、Cluster、Cloud 三种模式。
  • 系统层面,实现了 Batch Optimizer 和 Stream Builder。
  • 库和 API 支撑完善,以批处理的 DataSet 和流处理的 DataStream 支撑丰富的生态。

3.3 技术领先性

技术图片

从大数据计算框架演进来看,MapReduce 属于第一代技术、Tez 属于第二代技术、Spark 属于第三代技术、Flink 属于最新的第四代技术,相比与 Spark 它提供了 Real-Time、Native Iterative Processing 的差异化竞争力。

技术图片

从工具角度看,Storm 提供了第一代、第二代的工具,Spark 提供了第三代的工具,Flink 提供的则是第四代的工具,它以 Streaming 为核心构建,Batch 只是作为一种有限数据流。

四、总结

根据 GOOGLE 业务演进和开源领域的探索,可以得到如下的观点:

  • 计算框架融合。随着大数据分析业务的发展,需要多种计算框架的融合,通过混合调度提高计算资源的利用率。
  • 框架演进能力。计算框架要有不断演进的能力,特别是随着现在 Machine Learning 的流行,要能支撑 CPU/GPU/TPU 等异构计算。
  • 极致用户体验。针对不同的计算模型,采用不同的编程模型是一种学习负担,采用统一的计算编程模型,可以大大降低用户的使用难度。

五、参考

  1. Flink HomePage
  2. Beam HomePage
  3. GOOGLE Publication Database

以上是关于通过 GOOGLE 大数据计算平台演进理解 APACHE FLINK 前世今生的主要内容,如果未能解决你的问题,请参考以下文章

OPPO大数据离线计算平台架构演进

数据的“敏捷制造”,DataWorks一站式数据开发治理范式演进

数据湖:数据湖技术架构演进

离线实时一体化数仓与湖仓一体—云原生大数据平台的持续演进

离线实时一体化数仓与湖仓一体—云原生大数据平台的持续演进

Flink实战|小米流式平台架构演进与实践