通过 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

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

时间: 2024-12-16 11:16:21

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

大数据计算平台Spark内核全面解读

1.Spark介绍 Spark是起源于美国加州大学伯克利分校AMPLab的大数据计算平台,在2010年开源,目前是Apache软件基金会的顶级项目.随着Spark在大数据计算领域的暂露头角,越来越多的企业开始关注和使用.2014年11月,Spark在Daytona Gray Sort 100TB Benchmark竞赛中打破了由Hadoop MapReduce保持的排序记录.Spark利用1/10的节点数,把100TB数据的排序时间从72分钟提高到了23分钟. Spark在架构上包括内核部分和4

2019年优选大数据计算平台搭建方案之BR-odp数据安全、管理模块,数道云大数据

[前言]大数据计算平台,使用了Hadoop.Spark.Storm.Flink等这些分布式的实时或者离线计算框架,建立计算集群,并在上面运行各种计算任务. 21世纪的现在,大数据这个名词对我们来说并不陌生,大数据受到了不同行业,不同领域的各界人士的关注,就在今年已经过去的两会中,大数据的发展及使用也成为两会的热门话题. 大数据行业火热的发展,大数据技术将海量数据的价值化来赋予传统行业不一样的发展前景,大数据不仅助力企业的发展,同时也在政府等关于民意收集等等多个领域得到广泛应用,因此,大数据技术在

一个简单的使用Quartz和Oozie调度作业给大数据计算平台执行

一,介绍 Oozie是一个基于Hadoop的工作流调度器,它可以通过Oozie Client 以编程的形式提交不同类型的作业,如MapReduce作业和Spark作业给底层的计算平台(如 Cloudera Hadoop)执行. Quartz是一个开源的调度软件,它为任务的调度执行提供了各种触发器以及监听器 下面使用Quartz + Oozie 将一个MapReduce程序提交给Cloudera Hadoop执行 二,调度思路 ①为什么要用Quartz呢?主要是借助Quartz强大的触发器功能.它

揭秘阿里云EB级大数据计算引擎MaxCompute

日前,全球权威咨询与服务机构Forrester发布了<The Forrester WaveTM: Cloud Data Warehouse, Q4 2018>报告.这是Forrester Wave首次发布关于云数仓解决方案(Cloud Data Warehouse,简称CDW)的测评.报告对云数仓的当前产品功能.产品路线和发展策略.市场表现等几个方面进行全面的评估,在产品能力排行榜中,阿里云力压微软排行第7. Forrester测评报告对CDW核心功能的评估主要从解决方案的多样性.数据集成.性

一文读懂大数据计算框架与平台

1.前言 计算机的基本工作就是处理数据,包括磁盘文件中的数据,通过网络传输的数据流或数据包,数据库中的结构化数据等.随着互联网.物联网等技术得到越来越广泛的应用,数据规模不断增加,TB.PB量级成为常态,对数据的处理已无法由单台计算机完成,而只能由多台机器共同承担计算任务.而在分布式环境中进行大数据处理,除了与存储系统打交道外,还涉及计算任务的分工,计算负荷的分配,计算机之间的数据迁移等工作,并且要考虑计算机或网络发生故障时的数据安全,情况要复杂得多. 举一个简单的例子,假设我们要从销售记录中统

上:Spark VS Flink – 下一代大数据计算引擎之争,谁主沉浮?

作者简介 王海涛,曾经在微软的 SQL Server和大数据平台组工作多年.带领团队建立了微软对内的 Spark 服务,主打 Spark Streaming.去年加入阿里实时计算部门,参与改进阿里基于 Apache Flink 的Blink 平台. 导读: 做大数据绝对躲不过的一个热门话题就是实时流计算,而提到实时流计算,就不得不提 Spark 和 Flink.Spark 从 2014 年左右开始迅速流行,刚推出时除了在某些场景比 Hadoop MapReduce 带来几十到上百倍的性能提升外,

一分钟了解阿里云产品:大数据计算服务MaxCompute概述

阿里云发布了许多产品,今天让我们来了解下大数据计算服务MaxCompute这款产品吧. 什么是MaxCompute呢? MaxCompute是由阿里云自主研发,是阿里巴巴自主研发的海量数据处理平台.提供针对TB/PB级数据.实时性要求不高的分布式处理能力,应用于数据分析.挖掘.商业智能等领域.主要服务于批量结构化数据的存储和计算,可以提供海量数据仓库的解决方案以及针对大数据的分析建模服务.阿里巴巴的离线数据业务都运行在MaxCompute上. MaxCompute有什么优势和特点呢?下面让我来简

国内物联网平台初探(七):Ablecloud物联网自助开发和大数据云平台

国内物联网平台初探(七)——Ablecloud物联网自助开发和大数据云平台 马智 平台定位 面向IoT硬件厂商,提供设备联网与管理.远程查看控制.定制化云端功能开发.海量硬件数据存储与分析等基础设施,加速硬件实现联网智能化. 架构 服务 云端服务一体化开发引擎 业内独创一体化开发引擎架构,自动解决底层连接.存储.分布式集群部署.弹性扩容.安全等难题,降低IoT云端功能开发门槛,普通工程师即可快速完成云端服务开发部署,加速IoT功能创新迭代. IoT功能组件及方案超市 提供丰富的IoT功能组件及方

Cubert:LinkedIn开源的大数据计算引擎

近日, Linkedin 宣布开源其正在使用的大数据计算引擎 Cubert ,该框架提供了一种新的数据模型来组织数据,并使用诸如MeshJoin 和Cube算法等算法来对组织后的数据进行计算,从而减轻了系统负荷和节省了CPU资源,最终提供给用户一个简单.高效的查询.Cubert比较适合的计 算领域包括统计计算.聚合.时间距离计算.增量计算.图形计算等. Cubert整个架构可分为三层,第一层是数据流语言层,主要用来实现执行计划,包括 Apache Pig . Apache Hive 以及Cube