专栏首页大数据技术学习Storm与Spark、Hadoop三种框架对比
原创

Storm与Spark、Hadoop三种框架对比

一、Storm与Spark、Hadoop三种框架对比

Storm与Spark、Hadoop这三种框架,各有各的优点,每个框架都有自己的最佳应用场景。所以,在不同的应用场景下,应该选择不同的框架。

1.Storm是最佳的流式计算框架,Storm由Java和Clojure写成,Storm的优点是全内存计算,所以它的定位是分布式实时计算系统,按照Storm作者的说法,Storm对于实时计算的意义类似于Hadoop对于批处理的意义。

很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:199427210,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系

Storm的适用场景:

1)流数据处理

Storm可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去。

2)分布式RPC。由于Storm的处理组件是分布式的,而且处理延迟极低,所以可以作为一个通用的分布式RPC框架来使用。

2.Spark是一个基于内存计算的开源集群计算系统,目的是更快速的进行数据分析。Spark由加州伯克利大学AMP实验室Matei为主的小团队使用Scala开发,类似于Hadoop MapReduce的通用并行计算框架,Spark基于Map Reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点,但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的Map Reduce的算法。

Spark的适用场景:

1)多次操作特定数据集的应用场合

Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小。

2)粗粒度更新状态的应用

由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如Web服务的存储或者是增量的Web爬虫和索引。就是对于那种增量修改的应用模型不适合。

总的来说Spark的适用面比较广泛且比较通用。

3.Hadoop是实现了MapReduce的思想,将数据切片计算来处理大量的离线数据。Hadoop处理的数据必须是已经存放在HDFS上或者类似HBase的数据库中,所以Hadoop实现的时候是通过移动计算到这些存放数据的机器上来提高效率。

Hadoop的适用场景:

1)海量数据的离线分析处理

2)大规模Web信息搜索

3)数据密集型并行计算

简单来说:

Hadoop适合于离线的批量数据处理适用于对实时性要求极低的场景

Storm适合于实时流数据处理,实时性方面做得极好

Spark是内存分布式计算框架,试图吞并Hadoop的Map-Reduce批处理框架和Storm的流处理框架,但是Spark已经做得很不错了,批处理方面性能优于Map-Reduce,但是流处理目前还是弱于Storm,产品仍在改进之中

二、Hadoop的应用业务分析

大数据是不能用传统的计算技术处理的大型数据集的集合。它不是一个单一的技术或工具,而是涉及的业务和技术的许多领域。

目前主流的三大分布式计算系统分别为Hadoop、Spark和Strom:

  • Hadoop当前大数据管理标准之一,运用在当前很多商业应用系统。可以轻松地集成结构化、半结构化甚至非结构化数据集。
  • Spark采用了内存计算。从多迭代批处理出发,允许将数据载入内存作反复查询,此外还融合数据仓库,流处理和图形计算等多种计算范式。Spark构建在HDFS上,能与Hadoop很好的结合。它的RDD是一个很大的特点。
  • Storm用于处理高速、大型数据流的分布式实时计算系统。为Hadoop添加了可靠的实时数据处理功能。

Hadoop是使用Java编写,允许分布在集群,使用简单的编程模型的计算机大型数据集处理的Apache的开源框架。 Hadoop框架应用工程提供跨计算机集群的分布式存储和计算的环境。 Hadoop是专为从单一服务器到上千台机器扩展,每个机器都可以提供本地计算和存储。

Hadoop适用于海量数据、离线数据和负责数据,应用场景如下:

  • 场景1:数据分析,如京东海量日志分析,京东商品推荐,京东用户行为分析
  • 场景2:离线计算,(异构计算+分布式计算)天文计算
  • 场景3:海量数据存储,如京东的存储集群

基于京麦业务三个实用场景:

  • 京麦用户分析
  • 京麦流量分析
  • 京麦订单分析

都属于离线数据,决定采用Hadoop作为京麦数据类产品的数据计算引擎,后续会根据业务的发展,会增加Storm等流式计算的计算引擎,下图是京麦的北斗系统架构图:

图一 京东北斗系统

二、浅谈Hadoop的基本原理

Hadoop分布式处理框架核心设计:

  • HDFS:(Hadoop Distributed File System)分布式文件系统;
  • MapReduce:是一种计算模型及软件架构。

2.1 HDFS

HDFS(Hadoop File System),是Hadoop的分布式文件存储系统。

将大文件分解为多个Block,每个Block保存多个副本。提供容错机制,副本丢失或者宕机时自动恢复。默认每个Block保存3个副本,64M为1个Block。将Block按照key-value映射到内存当中。

图二 数据写入HDFS

图三 HDFS读取数据

2.2 MapReduce

MapReduce是一个编程模型,封装了并行计算、容错、数据分布、负载均衡等细节问题。MapReduce实现最开始是映射map,将操作映射到集合中的每个文档,然后按照产生的键进行分组,并将产生的键值组成列表放到对应的键中。化简(reduce)则是把列表中的值化简成一个单值,这个值被返回,然后再次进行键分组,直到每个键的列表只有一个值为止。这样做的好处是可以在任务被分解后,可以通过大量机器进行并行计算,减少整个操作的时间。但如果你要我再通俗点介绍,那么,说白了,Mapreduce的原理就是一个分治算法。

  • MapReduce计划分三个阶段执行,即映射阶段,shuffle阶段,并减少阶段。
  • 映射阶段:映射或映射器的工作是处理输入数据。一般输入数据是在文件或目录的形式,并且被存储在Hadoop的文件系统(HDFS)。输入文件被传递到由线映射器功能线路。映射器处理该数据,并创建数据的若干小块。
  • 减少阶段:这个阶段是:Shuffle阶段和Reduce阶段的组合。减速器的工作是处理该来自映射器中的数据。处理之后,它产生一组新的输出,这将被存储在HDFS。

图四 MapReduce

2.3 HIVE

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行,这套SQL 简称HQL。使不熟悉mapreduce 的用户很方便的利用SQL 语言查询,汇总,分析数据。而mapreduce开发人员可以把己写的mapper 和reducer 作为插件来支持Hive 做更复杂的数据分析。

图五 HIVE体系架构图

由上图可知,hadoop和mapreduce是hive架构的根基。Hive架构包括如下组件:CLI(command line interface)、JDBC/ODBC、Thrift Server、WEB GUI、metastore和Driver(Complier、Optimizer和Executor)。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 常用的大数据技术有哪些?hadoop学习总结

    大数据技术为决策提供依据,在政府、企业、科研项目等决策中扮演着重要的角色,在社会治理和企业管理中起到了不容忽视的作用,很多国家,如中国、美国以及欧盟等都已将大数...

    用户2292346
  • 大数据划重点,你必须掌握的三大关键技能

    因为数据时代全面来临,大数据、人工智能等技术引领科技创新潮流,获得国家政策大力支持,前景广阔。

    用户2292346
  • 如何从零开始规划大数据学习之路!

    针对第一个问题,就是ETL技术-数据的抽取,清洗,加载。传统数据抽取、清洗、加载是无法做到的。例如一个1TB的数据,需要抽取一些客户的基本信息。上万的文件,多种...

    用户2292346
  • 别再比较Hadoop和Spark了,那不是设计人员的初衷

    对Hadoop与Spark孰优孰劣这个问题,最准确的观点就是,设计人员旨在让Hadoop和Spark在同一个团队里面协同运行。 直接比较Hadoop和Spark...

    CDA数据分析师
  • 【干货】不懂大数据?没关系,硅谷创业协会讲座44页PPT笔记带你入门!

    本文共8300字,建议阅读时间15分钟 本文节选自《大数据入门》2015.01.17 硅谷创业协会讲座笔记。 首先自我介绍一下,我叫董飞,目前在硅谷的一家做在线...

    数据派THU
  • Hadoop和Spark的异同

    解决问题的层面不一样 Hadoop实质上是解决大数据大到无法在一台计算机上进行存储、无法在要求的时间内进行处理的问题,是一个分布式数据基础设施。 HDFS,它将...

    企鹅号小编
  • 谈谈spark和hadoop的差异

    谈到大数据,相信大家对Hadoop和Apache Spark这两个名字并不陌生。但我们往往对它们的理解只是提留在字面上,并没有对它们进行深入的思考,下面不妨跟我...

    用户1208773
  • Hadoop专业解决方案-第12章 为Hadoop应用构建企业级的安全解决方案

      非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,春节期间,项目进度有所延迟,不过元宵节以后大家已经步入正轨, 目...

    数据饕餮
  • 15G的Hadoop基础入门干货大放送!从教程到工具包再到电子书,让你零基础也能学会!

    昨天,总在投资风口的朱啸虎分享了雕爷的文章--“来,喝了这碗区块链解毒汤!”,并附上了转发语:雕爷这篇文章还是赞的。

    养码场
  • Spark是否可以完全取代Hadoop

    谈到大数据,相信大家对Hadoop和Apache Spark这两个名字并不陌生。然而,最近业界有一些人正在大张旗鼓的宣扬Hadoop将死,Spark将立。他们究...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券