前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >大数据框架发展史

大数据框架发展史

作者头像
大数据老哥
发布于 2021-10-21 08:51:15
发布于 2021-10-21 08:51:15
1.2K0
举报

这几年大数据的飞速发展,出现了很多热门的开源社区,其中著名的有 HadoopStorm,以及后来的 Spark,他们都有着各自专注的应用场景。Spark 掀开了内存计算的先河,也以内存为赌注,赢得了内存计算的飞速发展。Spark 的火热或多或少的掩盖了其他分布式计算的系统身影。就像 Flink,也就在这个时候默默的发展着。

在国外一些社区,有很多人将大数据的计算引擎分成了 4 代,当然,也有很多人不会认同。我们先姑且这么认为和讨论。

第1代——Hadoop MapReduce

首先第一代的计算引擎,无疑就是 Hadoop 承载的 MapReduce。它将计算分为两个阶段,分别为 Map 和 Reduce。对于上层应用来说,就不得不想方设法去拆分算法,甚至于不得不在上层应用实现多个 Job 的串联,以完成一个完整的算法,例如迭代计算。

介绍

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

  • 批处理
  • Mapper、Reducer

第2代——DAG框架(Tez) + MapReduce

由于这样的弊端,催生了支持 DAG 框架的产生。因此,支持 DAG 的框架被划分为第二代计算引擎。如 Tez 以及更上层的 Oozie。这里我们不去细究各种 DAG 实现之间的区别,不过对于当时的 Tez 和 Oozie 来说,大多还是批处理的任务。

介绍

Tez是Apache开源的支持DAG作业的计算框架,它直接源于MapReduce框架,核心思想是将Map和Reduce两个操作进一步拆分,即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,这样,这些分解后的元操作可以任意灵活组合,产生新的操作,这些操作经过一些控制程序组装后,可形成一个大的DAG作业。

  • 批处理
  • 1个Tez = MR(1) + MR(2) + ... + MR(n)
  • 相比MR效率有所提升

第3代——Spark

接下来就是以 Spark 为代表的第三代的计算引擎。第三代计算引擎的特点主要是 Job 内部的 DAG 支持(不跨越 Job),以及强调的实时计算。在这里,很多人也会认为第三代计算引擎也能够很好的运行批处理的 Job。

介绍

Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发的通用内存并行计算框架

Spark使用Scala语言进行实现,它是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集,具有以下特点。

  1. 运行速度快:Spark拥有DAG执行引擎,支持在内存中对数据进行迭代计算。官方提供的数据表明,如果数据由磁盘读取,速度是Hadoop MapReduce的10倍以上,如果数据从内存中读取,速度可以高达100多倍。
  2. 易用性好:Spark不仅支持Scala编写应用程序,而且支持JavaPython等语言进行编写,特别是Scala是一种高效、可拓展的语言,能够用简洁的代码处理较为复杂的处理工作。
  3. 通用性强:Spark生态圈即BDAS(伯克利数据分析栈)包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等组件,这些组件分别处理Spark Core提供内存计算框架、SparkStreaming的实时处理应用、Spark SQL的即席查询、MLlib或MLbase的机器学习和GraphX的图处理。
  4. 随处运行:Spark具有很强的适应性,能够读取HDFSCassandraHBase、S3和Techyon为持久层读写原生数据,能够以Mesos、YARN和自身携带的Standalone作为资源管理器调度job,来完成Spark应用程序的计算
  • 批处理、流处理、SQL高层API支持
  • 自带DAG
  • 内存迭代计算、性能较之前大幅提升

第4代——Flink

随着第三代计算引擎的出现,促进了上层应用快速发展,例如各种迭代计算的性能以及对流计算和 SQL 等的支持。Flink 的诞生就被归在了第四代。这应该主要表现在 Flink 对流计算的支持,以及更一步的实时性上面。当然 Flink 也可以支持 Batch 的任务,以及 DAG 的运算。

介绍

Flink 诞生于欧洲的一个大数据研究项目 StratoSphere。该项目是柏林工业大学的一个研究性项目。早期, Flink 是做 Batch 计算的,但是在 2014 年, StratoSphere 里面的核心成员孵化出 Flink,同年将 Flink 捐赠 Apache,并在后来成为 Apache 的顶级大数据项目,同时 Flink 计算的主流方向被定位为 Streaming, 即用流式计算来做所有大数据的计算,这就是 Flink 技术诞生的背景。

2014 年 Flink 作为主攻流计算的大数据引擎开始在开源大数据行业内崭露头角。区别于 Storm、Spark Streaming 以及其他流式计算引擎的是:它不仅是一个高吞吐、低延迟的计算引擎,同时还提供很多高级的功能。比如它提供了有状态的计算,支持状态管理,支持强一致性的数据语义以及支持 基于Event Time的WaterMark对延迟或乱序的数据进行处理等。

  • 批处理、流处理、SQL高层API支持
  • 自带DAG
  • 流式计算性能更高、可靠性更高

- END -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据老哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
三分钟了解下大数据技术发展史
我们常说的大数据技术,大致主要起源于Google在2004年前后发表的三篇论文,其实数据处理早就存在,每个公司或者个人都有自己的大数据处理系统,并没有形成编程框架和理念,而这三篇论文也就是我们熟知的大数据三驾马车,分别是分布式文件系统GFS、大数据分布式计算框架MapReduce和NoSQL数据库BigTable,这三篇论文影响了当今大数据生态,可以称得上大数据的基石,Doug cutting大佬在基于谷歌的三篇论文开发出了hadoop hdfs分布式文件存储、MapReduce计算框架,实际上从hadoop开源代码中窥见大数据并没有多么高深的技术难点,大部分实现都是基础的java编程,但是对业界的影响是非常深远的。那个时候大多数公司还是聚焦在单机上,如何尽可能提升单机的性能,需求更贵的服务器,谷歌通过把许多廉价的服务器通过分布式技术组成一个大的存储、计算集群给业界应对存储计算问题提供了新的发展思路。
house.zhang
2021/08/20
9130
【独家】一文读懂大数据计算框架与平台
1. 前言 计算机的基本工作就是处理数据,包括磁盘文件中的数据,通过网络传输的数据流或数据包,数据库中的结构化数据等。随着互联网、物联网等技术得到越来越广泛的应用,数据规模不断增加,TB、PB量级成为常态,对数据的处理已无法由单台计算机完成,而只能由多台机器共同承担计算任务。而在分布式环境中进行大数据处理,除了与存储系统打交道外,还涉及计算任务的分工,计算负荷的分配,计算机之间的数据迁移等工作,并且要考虑计算机或网络发生故障时的数据安全,情况要复杂得多。 举一个简单的例子,假设我们要从销售记录中统计各种
数据派THU
2018/01/29
5.7K0
Spark一出,Hadoop必死?Spark才是大数据的未来?
最近公司邀请来王家林老师来做培训,其浮夸的授课方式略接受不了。其强烈推崇Spark技术,宣称Spark是大数据的未来,同时宣布了Hadoop的死刑。 那么与Hadoop相比,Spark技术如何?现工业界大数据技术都在使用何种技术? 来自Xiaoyu Ma,号称是大数据工程师的回答: 我本人是类似Hive平台的系统工程师,我对MapReduce的熟悉程度是一般,它是我的底层框架。我隔壁组在实验Spark,想将一部分计算迁移到Spark上。 年初的时候,看Spark的评价,几乎一致表示,Spark是小数据集上处
CSDN技术头条
2018/02/08
8610
Spark专题系列(一):Spark 概述
Spark适用于各种各样原本需要多种不同的分布式平台的场景,包括批处理,迭代计算,交互式查询,流处理,通过在一个统一的框架下支持这些不同的计算,Spark使我们可以简单而低耗地把各种处理流程整合在一起。
用户5252199
2022/04/18
6370
Spark专题系列(一):Spark 概述
女友问粉丝过万如何庆祝,我发万字长文《保姆级大数据入门篇》感恩粉丝们支持,学姐|学妹|学弟|小白看了就懂
Java基础语法,面向对象,字符串,异常,集合,IO,线程、数据库、JDBC,Maven
Lansonli
2021/10/11
4810
大数据高速计算引擎Spark
从狭义的角度上看:Hadoop是一个分布式框架,由存储、资源调度、计算三部分组 成; Spark是一个分布式计算引擎,由 Scala 语言编写的计算框架,基于内存的快速、通 用、可扩展的大数据分析引擎; 从广义的角度上看,Spark是Hadoop生态中不可或缺的一部分;
用户2337871
2021/03/15
8950
大数据处理的开源框架:概述
本文讨论大数据处理生态系统和相关的架构栈,包括对适应于不同任务的多种框架特性的调研。除此之外,文章还从多个层次对框架进行深入研究,如存储,资源管理,数据处理,查询和机器学习。
大数据弄潮儿
2018/05/23
2.1K1
大数据处理的开源框架:概述
为什么Spark能成为最火的大数据计算引擎?它是怎样工作的?
十年前我们只有Hadoop,大家首先通过HDFS实现海量数据的共享存储,然后使用MapReduce以批处理的方式处理这些海量数据,这一切看起来似乎十分完美。
IT阅读排行榜
2020/09/14
8780
Spark 极简教程
何谓计算引擎,一言以蔽之,就是专门处理数据的程序,在大数据之前,人们用数据库来处理数据,人们常说的SQL,它是一种DSL,它的背后正是数据库的计算引擎,但是数据库的计算和存储通常被集成在一起,统称为数据库引擎。
一个会写诗的程序员
2021/12/16
5750
Spark 极简教程
Flink入门基础 – 简介
        这几年大数据的飞速发展,出现了很多热门的开源社区,其中著名的有 Hadoop、Storm,以及后来的 Spark,他们都有着各自专注的应用场景。Spark 掀开了内存计算的先河,也以内存为赌注,赢得了内存计算的飞速发展。Spark 的火热或多或少的掩盖了其他分布式计算的系统身影。就像 Flink,也就在这个时候默默的发展着。
星哥玩云
2022/07/26
9770
Flink入门基础 – 简介
快速入门Flink (1) —— Flink的简介与架构体系
历时一个多月,我们终于结束了【企业级360°全方位用户画像】的项目,想看具体详情的朋友,可以移步至博主的大数据项目专栏一饱眼福…
大数据梦想家
2021/01/27
9610
快速入门Flink (1) —— Flink的简介与架构体系
听程序员界郭德纲怎么“摆”大数据处理
大规模数据处理技术如果从MapReduce论文算起,已经前后跨越了十六年。我们先沿着时间线看一下大规模数据处理的重要技术和它们产生的年代。后面从MapReduce到Spark、Flink、Beam的演进特性来看大规模数据处理计算引擎应该具备什么样的能力。
凯哥
2020/01/17
8480
听程序员界郭德纲怎么“摆”大数据处理
Hadoop与Spark等大数据框架介绍[通俗易懂]
海量数据的存储问题很早就已经出现了,一些行业或者部门因为历史的积累,数据量也达到了一定的级别。很早以前,当一台电脑无法存储这么庞大的数据时,采用的解决方案是使用NFS(网络文件系统)将数据分开存储。但是这种方法无法充分利用多台计算机同时进行分析数据。
全栈程序员站长
2022/08/10
1.5K0
Hadoop与Spark等大数据框架介绍[通俗易懂]
基于Flink流处理的动态实时电商实时分析系统
1.Flink是一个针对流数据和批数据的分布式处理引擎,主要用Java代码实现。 
吴生
2018/11/16
1.7K0
大数据Hadoop生态圈各个组件介绍(详情)
-coordination and management(协调与管理) -query(查询) -data piping(数据管道) -core hadoop(核心hadoop) -machine learning(机器学习) -nosql database(nosql数据库)
全栈程序员站长
2022/08/31
5K0
大数据Hadoop生态圈各个组件介绍(详情)
从Hadoop到Spark、Flink,大数据处理框架十年激荡发展史
当前这个数据时代,各领域各业务场景时时刻刻都有大量的数据产生,如何理解大数据,对这些数据进行有效的处理成为很多企业和研究机构所面临的问题。本文将从大数据的基础特性开始,进而解释分而治之的处理思想,最后介绍一些流行的大数据技术和组件,读者能够通过本文了解大数据的概念、处理方法和流行技术。
PP鲁
2019/12/25
4K0
腾讯大数据之计算新贵Spark
前言 Spark作为Apache顶级的开源项目,项目主页见http://spark.apache.org。在迭代计算,交互式查询计算以及批量流计算方面都有相关的子项目,如Shark,Spark Streaming,MLbase,GraphX,SparkR等。从13年起Spark开始举行了自已的Spark Summit会议,会议网址见http://spark-summit.org。Amplab实验室单独成立了独立公司Databricks来支持Spark的研发。 为了满足挖掘分析与交互式实时查询
腾讯大数据
2018/01/26
1.2K0
Spark初识-Spark与Hadoop的比较
Hadoop一个作业称为一个Job,Job里面分为Map Task和Reduce Task阶段,每个Task都在自己的进程中运行,当Task结束时,进程也会随之结束;
栗筝i
2022/12/01
5380
Spark初识-Spark与Hadoop的比较
大数据Flink进阶(一):Apache Flink是什么
在当前数据量激增的时代,各种业务场景都有大量的业务数据产生,对于这些不断产生的数据应该如何进行有效的处理,成为当下大多数公司所面临的问题。目前比较流行的大数据处理引擎Apache Spark,基本上已经取代了MapReduce成为当前大数据处理的标准。随着数据的不断增长,人们逐渐意识到对实时数据处理的重要性。相对传统数据处理模式,流式数据处理有着更高的处理效率和成本控制要求。Apache Spark 不仅支持批数据计算还支持流式数据计算,但是SparkStreaming在底层架构、数据抽象等方面采用了批量计算的概念,其流计算的本质还是批(微批)计算。
Lansonli
2023/03/18
1.7K0
大数据Flink进阶(一):Apache Flink是什么
001. Flink产生的背景以及简介
实时处理是指从数据产生到根据该数据计算的结果产生之间的这段延迟可以满足业务的需求,假如业务需求是延迟不超过10ms,而你的处理延迟为15ms,就不能算实时处理,而假如业务要求处理数据的延迟为30min,而你的数据可以在20min内计算出来,这也算实时处理。
CoderJed
2019/08/02
2.2K0
推荐阅读
相关推荐
三分钟了解下大数据技术发展史
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文