当前位置:主页 > 查看内容

大数据三大主流平台框架的比较

发布时间:2021-04-27 00:00| 位朋友查看

简介:在大数据的处理上,起到关键性作用的就是大数据框架,通过大数据系统框架,实现对大规模数据的整合处理。从人工统计分析到计算机,再到今天的分布式计算平台,数据处理速度飞速提高的背后是整体架构的不断演进。当今,市面上可用的大数据框架很多,最流行的……

在大数据的处理上,起到关键性作用的就是大数据框架,通过大数据系统框架,实现对大规模数据的整合处理。从人工统计分析到计算机,再到今天的分布式计算平台,数据处理速度飞速提高的背后是整体架构的不断演进。当今,市面上可用的大数据框架很多,最流行的莫过于Hadoop,Spark以及Storm这三种了,Hadoop是主流,然而Spark和Storm这两个后起之秀也正以迅猛之势快速发展。接下来让我们一起了解一下这三个平台

1、Hadoop

说到大数据,首先想到的肯定是Hadoop,因为Hadoop是目前世界上使用最广泛的大数据工具。具有良好的跨平台性,并且可部署在廉价的计算机集群中,在业内应用非常广泛,是的代名词,也是分布式计算架构的鼻祖。凭借极高的容错率和极低的硬件价格,在大数据市场上蒸蒸日上。几乎所有主流厂商都围绕Hadoop进行开发和提供服务,如谷歌、百度、思科、华为、阿里巴巴、微软都支持Hadoop。到目前为止,Hadoop已经成为一个巨大的生态系统,并且已经实现了大量的算法和组件。

Hadoop框架当中最主要的单个组件就是HDFS、MapReduce以及Yarn。

在大数据处理环节当中,HDFS负责数据存储,MapReduce负责数据计算,Yarn负责资源调度。基于这三个核心组件,Hadoop可以实现对大规模数据的高效处理,同时Hadoop出色的故障处理机制,支持高可伸缩性,容错能力,具有高可用性,更适合大数据平台研发。

但是Hadoop存在比较大的一个局限就是,处理数据主要是离线处理,对于大规模离线数据处理很有一套,但是对于时效性要求很高的数据处理任务,不能实现很好的完成。


作为一种对大量数据进行分布式处理的软件框架,Hadoop具有以下几方面特点:


Hadoop架构大幅提升了计算存储性能,降低计算平台的硬件投入成本。但是由于计算过程放在硬盘上,受制于硬件条件限制,数据的吞吐和处理速度明显不如使用内存快,尤其是在使用Hadoop进行迭代计算时,非常耗资源,且在开发过程中需要编写不少相对底层的代码,不够高效。

2、Spark

基于Hadoop在实时数据处理上的局限,Spark与Storm框架应运而生,具有改进的数据流处理的批处理框架,通过内存计算,实现对大批量实时数据的处理,基于Hadoop架构,弥补了Hadoop在实时数据处理上的不足。为了使程序运行更快,Spark提供了内存计算,减少了迭代计算时的I/O开销。Spark不但具备Hadoop MapReduce的优点,而且解决了其存在的缺陷,逐渐成为当今领域最热门的计算平台。

作为大数据框架的后起之秀,Spark具有更加高效和快速的计算能力,其特点主要有:


我们知道计算模式主要有四种,除了图计算这种特殊类型,其他三种足以应付大部分应用场景,因为实际应用中处理主要就是这三种:复杂的批量数据处理、基于历史数据的交互式查询和基于实时数据流的数据处理。

Hadoop MapReduce主要用于计算,Hive和Impala用于交互式查询,Storm主要用于流式数据处理。以上都只能针对某一种应用,但如果同时存在三种应用需求,Spark就比较合适了。因为Spark的设计理念就是“一个软件栈满足不同应用场景”,它有一套完整的生态系统,既能提供内存计算框架,也可支持多种类型计算(能同时支持、流式计算和交互式查询),提供一站式解决方案

此外,Spark还能很好地与Hadoop生态系统兼容,Hadoop应用程序可以非常容易地迁移到Spark平台上。

除了数据存储需借助Hadoop的HDFS或Amazon S3之外,其主要功能组件包括Spark Core(基本通用功能,可进行复杂的批处理计算)、Spark SQL(支持基于历史数据的交互式查询计算)、Spark Streaming(支持实时流式计算)、MLlib(提供常用机器学习,支持基于历史数据的数据挖掘)和GraphX(支持图计算)等。

尽管Spark有很多优点,但它并不能完全替代Hadoop,而是主要替代MapReduce计算模型。Spark没有像Hadoop那样有数万个级别的集群,所以在实际应用中,Spark常与Hadoop结合使用,它可以借助YARN来实现资源调度管理,借助HDFS实现分布式存储。此外,比起Hadoop可以用大量廉价计算机集群进行分布式存储计算(成本低),Spark对硬件要求较高,成本也相对高一些。

3、Storm

与Hadoop的批处理模式不同,Storm使用一个流计算框架,该框架由Twitter开源,托管在GitHub上。与Hadoop相似,Storm也提出了两个计算角色,Spout和Bolt。

如果说Hadoop是一个水桶,一次只能在一口井里装一个水桶,那么Storm是一个水龙头,它可以打开来连续生产水。Storm还支持许多语言,如Java、Ruby、Python等。因为Storm是一个流计算框架,它使用内存,这在延迟方面有很大优势,但是Storm不会持久化数据。

但Storm的缺点在于,无论是离线、高延迟,还是交互式查询,它都不如Spark框架。不同的机制决定了二者所适用的场景不同,比如炒股,股价的变化不是按秒计算的,因此适合采用计算延迟度为秒级的Spark框架;而在高频交易中,高频获利与否往往就在1ms之间,就比较适合采用实时计算延迟度的Storm框架。

Storm对于实时计算的意义类似于Hadoop对于的意义,可以简单、高效、可靠地处理流式数据并支持多种语言,它能与多种系统进行整合,从而开发出更强大的实时计算系统。

作为一个实时处理流式数据的计算框架,Storm的特点如下:


就像目前云计算市场中风头最劲的混合云一样,越来越多的组织和个人采用混合式大数据平台架构,因为每种架构都有其自身的优缺点。

比如Hadoop,其数据处理速度和难易度都远不如Spark和Storm,但是由于硬盘断电后其数据可以长期保存,因此在处理需要长期存储的数据时还需要借助于它。不过由于Hadoop具有非常好的兼容性,因此也非常容易同Spark和Storm相结合使用,从而满足不同组织和个人的差异化需求。

考虑到网络安全态势所应用的场景,即大部分是复杂批量数据处理(日志事件)和基于历史数据的交互式查询以及数据挖掘,对准实时流式数据处理也会有一部分需求(如会话流的检测分析),建议其大数据平台采用Hadoop和Spark相结合的建设模式。

大数据处理的框架是一直在不断更新优化的,没有哪一种结构能够实现对大数据的完美处理,在真正的大数据平台开发上,需要根据实际需求来考量。


本文转载自网络,原文链接:https://mp.weixin.qq.com/s/M6HL8K1O0p182msoHgcLaw
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:大数据未来发展趋势 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐