分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

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

发布时间:2023-09-06 02:32责任编辑:郭大石关键词:暂无标签
一、背景

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 计算框架技术演进

计算框架论文简介发表时间第一作者
并行数据分析 SawzallInterpreting the data: Parallel analysis with Sawzall2005Rob Pike, Sean Dorward, Robert Griesemer and Sean Quinlan
并行数据处理流水线 FlumeJavaEasy, Efficient Data-Parallel Pipelines2010Craig Chambers, Ashish Raniwala, Frances Perry, ?etc.
图处理 PregelA System for Large-Scale Graph Processing2010Grzegorz Malewicz, Matthew H. Austern, Aart J. C. Bik, ?etc.
交互式数据分析 DremelInteractive Analysis of Web-Scale Datasets2010Sergey Melnik, Andrey Gubarev, Jing Jing Long, etc.
基于 MR 的 SQL TenzingA SQL Implementation On The MapReduce Framework2011Biswapesh Chattopadhyay, Liang Lin, Weiran Liu, ?etc.
大规模数据增量处理 PercolatorLarge-scale Incremental Processing Using Distributed Transactions and Notifications2011Daniel Peng, Frank Dabek
高效列存 PowerDrillProcessing a Trillion Cells per Mouse Click2012Alexander Hall, Olaf Bachmann, Robert Bussow, ?etc.
流处理框架 MillWheelFault-Tolerant Stream Processing at Internet Scale2013Tyler Akidau, Alex Balikov, Kaya Bekiroglu, ??etc.
近实时数据仓库 MesaGeo-Replicated, Near Real-Time, Scalable Data Warehousing2014Ashish Gupta, Fan Yang, Jason Govig, ??etc.
大规模实时/离线数据分析 DataflowA Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processing2015Tyler Akidau, Robert Bradshaw, Craig Chambers, etc.
支撑广告业务的交互式报表 ShastaInteractive Reporting At Scale2016Gokul Nath Babu Manoharan, Stephan Ellner, Karl Schnaitterα, ?etc.
数据集组织 GoodsOrganizing Google’s Datasets2016Alon Halevy, Flip Korn, Natalya F. Noy, ?etc.

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

  • Streaming 101: The world beyond batch. A high-level tour of modern data-processing concepts 。
  • Streaming 102: The world beyond batch. The what, where, when, and how of unbounded data processin 。

三、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 前世今生

原文地址:http://blog.51cto.com/luoqingchao/2349581

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved