大数据框架对比:Hadoop、Storm、Samza、Spark和Flink_flink storm spark hadoop 横向pk-程序员宅基地

技术标签: 程序员  机器学习  编程语言  人工智能  hadoop  互联网资讯  大数据  

简介

大数据是收集、整理、处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称。虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性、规模,以及价值在最近几年才经历了大规模扩展。

在之前的文章中,我们曾经介绍过有关大数据系统的常规概念、处理过程,以及各种专门术语,本文将介绍大数据系统一个最基本的组件:处理框架。处理框架负责对系统中的数据进行计算,例如处理从非易失存储中读取的数据,或处理刚刚摄入到系统中的数据。数据的计算则是指从大量单一数据点中提取信息和见解的过程。

下文将介绍这些框架:

仅批处理框架:

Apache Hadoop

仅流处理框架:

Apache Storm
Apache Samza

混合框架:

Apache Spark
Apache Flink

大数据处理框架是什么?

处理框架和处理引擎负责对数据系统中的数据进行计算。虽然“引擎”和“框架”之间的区别没有什么权威的定义,但大部分时候可以将前者定义为实际负责处理数据操作的组件,后者则可定义为承担类似作用的一系列组件。

例如Apache Hadoop可以看作一种以MapReduce作为默认处理引擎的处理框架。引擎和框架通常可以相互替换或同时使用。例如另一个框架Apache Spark可以纳入Hadoop并取代MapReduce。组件之间的这种互操作性是大数据系统灵活性如此之高的原因之一。

虽然负责处理生命周期内这一阶段数据的系统通常都很复杂,但从广义层面来看它们的目标是非常一致的:通过对数据执行操作提高理解能力,揭示出数据蕴含的模式,并针对复杂互动获得见解。

为了简化这些组件的讨论,我们会通过不同处理框架的设计意图,按照所处理的数据状态对其进行分类。一些系统可以用批处理方式处理数据,一些系统可以用流方式处理连续不断流入系统的数据。此外还有一些系统可以同时处理这两类数据。

在深入介绍不同实现的指标和结论之前,首先需要对不同处理类型的概念进行一个简单的介绍。

批处理系统

批处理在大数据世界有着悠久的历史。批处理主要操作大容量静态数据集,并在计算过程完成后返回结果。

批处理模式中使用的数据集通常符合下列特征...

有界:批处理数据集代表数据的有限集合

持久:数据通常始终存储在某种类型的持久存储位置中

大量:批处理操作通常是处理极为海量数据集的唯一方法

批处理非常适合需要访问全套记录才能完成的计算工作。例如在计算总数和平均数时,必须将数据集作为一个整体加以处理,而不能将其视作多条记录的集合。这些操作要求在计算进行过程中数据维持自己的状态。

需要处理大量数据的任务通常最适合用批处理操作进行处理。无论直接从持久存储设备处理数据集,或首先将数据集载入内存,批处理系统在设计过程中就充分考虑了数据的量,可提供充足的处理资源。由于批处理在应对大量持久数据方面的表现极为出色,因此经常被用于对历史数据进行分析。

大量数据的处理需要付出大量时间,因此批处理不适合对处理时间要求较高的场合。
Apache Hadoop

Apache Hadoop是一种专用于批处理的处理框架。Hadoop是首个在开源社区获得极大关注的大数据框架。基于谷歌有关海量数据处理所发表的多篇论文与经验的Hadoop重新实现了相关算法和组件堆栈,让大规模批处理技术变得更易用。

新版Hadoop包含多个组件,即多个层,通过配合使用可处理批数据:

HDFS:HDFS是一种分布式文件系统层,可对集群节点间的存储和复制进行协调。HDFS确保了无法避免的节点故障发生后数据依然可用,可将其用作数据来源,可用于存储中间态的处理结果,并可存储计算的最终结果。

YARN:YARN是Yet Another Resource Negotiator(另一个资源管理器)的缩写,可充当Hadoop堆栈的集群协调组件。该组件负责协调并管理底层资源和调度作业的运行。通过充当集群资源的接口,YARN使得用户能在Hadoop集群中使用比以往的迭代方式运行更多类型的工作负载。

MapReduce:MapReduce是Hadoop的原生批处理引擎。

批处理模式

Hadoop的处理功能来自MapReduce引擎。MapReduce的处理技术符合使用键值对的map、shuffle、reduce算法要求。基本处理过程包括:

从HDFS文件系统读取数据集

将数据集拆分成小块并分配给所有可用节点

针对每个节点上的数据子集进行计算(计算的中间态结果会重新写入HDFS)

重新分配中间态结果并按照键进行分组

通过对每个节点计算的结果进行汇总和组合对每个键的值进行“Reducing”

将计算而来的最终结果重新写入 HDFS

优势和局限

由于这种方法严重依赖持久存储,每个任务需要多次执行读取和写入操作,因此速度相对较慢。但另一方面由于磁盘空间通常是服务器上最丰富的资源,这意味着MapReduce可以处理非常海量的数据集。同时也意味着相比其他类似技术,Hadoop的MapReduce通常可以在廉价硬件上运行,因为该技术并不需要将一切都存储在内存中。MapReduce具备极高的缩放潜力,生产环境中曾经出现过包含数万个节点的应用。

MapReduce的学习曲线较为陡峭,虽然Hadoop生态系统的其他周边技术可以大幅降低这一问题的影响,但通过Hadoop集群快速实现某些应用时依然需要注意这个问题。

围绕Hadoop已经形成了辽阔的生态系统,Hadoop集群本身也经常被用作其他软件的组成部件。很多其他处理框架和引擎通过与Hadoop集成也可以使用HDFS和YARN资源管理器。

总结

Apache Hadoop及其MapReduce处理引擎提供了一套久经考验的批处理模型,最适合处理对时间要求不高的非常大规模数据集。通过非常低成本的组件即可搭建完整功能的Hadoop集群,使得这一廉价且高效的处理技术可以灵活应用在很多案例中。与其他框架和引擎的兼容与集成能力使得Hadoop可以成为使用不同技术的多种工作负载处理平台的底层基础。

流处理系统

流处理系统会对随时进入系统的数据进行计算。相比批处理模式,这是一种截然不同的处理方式。流处理方式无需针对整个数据集执行操作,而是对通过系统传输的每个数据项执行操作。

流处理中的数据集是“无边界”的,这就产生了几个重要的影响:

完整数据集只能代表截至目前已经进入到系统中的数据总量。

工作数据集也许更相关,在特定时间只能代表某个单一数据项。

处理工作是基于事件的,除非明确停止否则没有“尽头”。处理结果立刻可用,并会随着新数据的抵达继续更新。

流处理系统可以处理几乎无限量的数据,但同一时间只能处理一条(真正的流处理)或很少量(微批处理,Micro-batch Processing)数据,不同记录间只维持最少量的状态。虽然大部分系统提供了用于维持某些状态的方法,但流处理主要针对副作用更少,更加功能性的处理(Functional processing)进行优化。

功能性操作主要侧重于状态或副作用有限的离散步骤。针对同一个数据执行同一个操作会或略其他因素产生相同的结果,此类处理非常适合流处理,因为不同项的状态通常是某些困难、限制,以及某些情况下不需要的结果的结合体。因此虽然某些类型的状态管理通常是可行的,但这些框架通常在不具备状态管理机制时更简单也更高效。

此类处理非常适合某些类型的工作负载。有近实时处理需求的任务很适合使用流处理模式。分析、服务器或应用程序错误日志,以及其他基于时间的衡量指标是最适合的类型,因为对这些领域的数据变化做出响应对于业务职能来说是极为关键的。流处理很适合用来处理必须对变动或峰值做出响应,并且关注一段时间内变化趋势的数据。
在这里我还是要推荐下我自己建的大数据学习交流qq裙:522189307 , 裙 里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据开发相关的),包括我自己整理的一份最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴。上述资料加群可以领取
 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dieagag/article/details/90318725

智能推荐

测试一下你对IP地址的掌握水平(网管面试时会用到)-程序员宅基地

文章浏览阅读145次。以下内容摘自《网管员面试宝典》一书。测试一下你对IP地址的理解能力,大家先不看题后的解答,看自己能做出多少题。网管面试时会用到的。面试题1:以下说法正确的是()。A. C类地址就是局域网用的IP地址B.A类地址的网络ID为128个C.网络ID不能以数字0或127开头D.不能使用全0或全1主机ID解析:这道题考的是IP地..._将235.168.20.12地址转换二进制

个人收藏总结_个人收藏简介-程序员宅基地

文章浏览阅读135次。个人收藏总结Ubuntu&ROS相关Ubuntu 简介Ubuntu安装ROS安装MDK相关Ubuntu&ROS相关Ubuntu 简介链接: Ubuntu 各版本代号简介.Ubuntu安装链接: Ubuntu操作系统的安装.链接: 新手安装Ubuntu 16.04 操作系统.链接: Vmwar_个人收藏简介

C# Profinet,局域网连接,实现读写-程序员宅基地

文章浏览阅读5.5k次。C# Profinet,局域网连接,实现读写文章目录C# Profinet,局域网连接,实现读写前言一、仿真环境安装二、安装后环境介绍及配置1.网卡IP2.启动 S7-PLCSIM Advanced V3.02.启动 TIA Portal V162.C#代码前言使用 TIA Portal V16、S7-PLCSIM Advanced V3.0 实现PLC仿真环境,通过C#编码实现对PLC仿真环境的读写。提示:以下是本篇文章正文内容,下面案例可供参考一、仿真环境安装TIA Portal V_c# profinet

创建型设计模式之抽象工厂模式-程序员宅基地

文章浏览阅读243次。介绍在前面已经讲解过工厂方法模式,这俩者有什么区别呢?前面所说的工厂方法模式只会生产一种具体的产品,而抽象工厂模式生产出来的产品是不确定的。例如不同操作系统中控件的实现不一样,展示效果也不一样,对于操作系统如Android,iOS,WindowPhone本身构成一个产品类,而其控件如Button,TextView也构成产品类,两种产品类两种变化,各有各的特性。定义为创建一组相关或者相互..._设计模式之抽象工厂模式

开始写技术博客-程序员宅基地

文章浏览阅读130次。最近经历了一些,面试,笔试。刚开始觉得自己的专业让自己很吃亏,受了不少打击。然后看了些面经,才认识到自己的水平远没有达到能够进入到理想的互联网公司。其实,无论是精神还是技术水平我都没有对这段校招做好准备。 我希望这里可以记录下我今后成长的过程。

qmake前配置uic路径_Qt入门与提高:K02-01通过简单exe介绍pro基本配置-程序员宅基地

文章浏览阅读145次。版权声明-----------------------------------------------------------------------------------------------该文章原创于Qter开源社区(www.qter.org)作者: 女儿叫老白转载请注明出处!--------------------------------------------------------..._qt uic路径

随便推点

洛谷---P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles_数字三角形 洛谷-程序员宅基地

文章浏览阅读161次。题目描述观察下面的数字金字塔。写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 在上面的样例中,从 7→3→8→7→5 的路径产生了最大输入格式第一个行一个正整数 rr ,表示行的数目。后面每行为这个数字金字塔特定行包含的整数。输出格式单独的一行,包含那个_数字三角形 洛谷

HCIE 数通资料下载 肖哥视频下载_肖哥 下载-程序员宅基地

文章浏览阅读7.1k次。说明1:由于百度云链接经常自动失效,建议将链接全部收藏到自己的百度云盘。收藏后,即使我这边失效甚至删除,文件也依旧存在于你的网盘中。说明2:有时提示链接失效或链接打不开,可以尝试其他浏览器打开如:IE 、谷歌、360 、火狐。建议收藏至自己的网盘,以免链接失效后打不开。说明3:若打开压缩包需要密码,所有上传压缩包解压密码都是:hcnp-1234或者123说明4:学习后期用到的部分设备或拓扑打开后需要密码,不同设备默认密码不同,设备密码在视频课程里面有描述具体学习到相应模块后即可知晓(学员刚入.._肖哥 下载

分布式系统技术——分布式锁原理与实战_分布式高并发抢锁原理-程序员宅基地

文章浏览阅读2k次。摘要本博文主要是的介绍分布式锁的原理和应用场景,分布式锁实现主要以Zookeeper(以下简称zk)、Redis、MySQL这三种为主。下面将分别对以上的分布式进行详细的说明。MySQL分布式锁Redis分布式锁Zookeeper分布式锁分布式锁总结参考博文..............._分布式高并发抢锁原理

Kaggle之高级房价预测_kaggle高级房价预测-程序员宅基地

文章浏览阅读306次。Kaggle之高级房价预测0.综述1.加入比赛和下载数据集2.数据分析与赛题思路0.综述Kaggle是一个进行数据发掘和预测竞赛的在线平台。从公司的角度来讲,可以提供一些数据,进而提出一个实际需要解决的问题;从参赛者的角度来讲,他们将组队参与项目,针对其中一个问题提出解决方案,最终由公司选出的最佳方案可以获得奖金。本篇博客是自己入门Kaggle的记录,首先就是一个练手比赛题目:高级房价预测。..._kaggle高级房价预测

网页去重(四)之余弦夹角计算相似度_余弦相似度去重-程序员宅基地

文章浏览阅读1.9k次。网页去重之余弦夹角计算相似度1. 相似度度量 相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大。对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字和向量数据的映射关系,通过计算几个或者多个不同的向量的差异的大小,来计算_余弦相似度去重

重装系统win10安装教程(超详细)_重装系统win10步骤和详细教程-程序员宅基地

文章浏览阅读10w+次,点赞290次,收藏2.7k次。操作前请准备8G以上(32G以内)U盘,制作U盘会格式化U盘,此U盘内的数据需要提前备份至其它U盘或移动硬盘操作步骤:一、打开微软下载Win10的网址下载 Windows 10二、选择立即下载工具 ,下载后以管理员身份运行三、 在您想要执行什么操作?页面上,选择为另一台电脑创建安装介质,然后选择下一步四、选64位或者32位 根据自己电脑配置来选五、选择您要使用哪种介质:1、 选择U盘,然后选择下一步。2、选择到您的U盘。然后选..._重装系统win10步骤和详细教程