初识大数据:Hadoop、Spark、Storm

来源:互联网 发布:好玩的网络捕鱼游戏 编辑:程序博客网 时间:2024/05/01 10:08

大数据的主要特点:4V

数据量大(Volume),数据类别复杂(Variety),数据处理速度快(Velocity)和数据价值大密度低(Value)


大数据处理分类:

·        复杂的批量数据处理(batch dataprocessing),通常的时间跨度在数十分钟到数小时之间。MapReduce

·        基于历史数据的交互式查询(interactivequery),通常的时间跨度在数十秒到数分钟之间。Impala

·        基于实时数据流的数据处理(streaming dataprocessing),通常的时间跨度在数百毫秒到数秒之间。 Storm


BDAS(Berkeley Data Analytics Stack):伯克利大学提出的关于数据分析的软件栈。

BDAS就是以Spark为基础的一套软件栈,基于内存的通用计算模型,同时支持Batch、Interactive、Streaming的处理,且兼容支持HDFS和S3等分布式文件系统,可以部署在YARN和Mesos等流行的集群资源管理器之上。


Hadoop采用MapReduce分布式计算框架,将数据切片计算来处理大量的离线数据数据。并根据GFS开发了HDFS分布式文件系统,根据BigTable开发了HBase数据存储系统。Hadoop处理的数据必须是已经存放在HDFS上或者类似HBase的数据库中。常用于离线的复杂的大数据处理。

Hadoop的适用场景:

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

2)大规模Web信息搜索

3)数据密集型并行计算

 

Spark:基于内存计算的开源集群计算系统。核心技术是RDD(Resilient Distributed Datasets) 弹性分布式数据集。

Spark在Hadoop的基础上进行了一些架构上的改良。Spark与Hadoop最大的不同点在于,Hadoop使用硬盘来存储数据,而Spark使用内存来存储数据,因此Spark可以提供超过Hadoop100倍的运算速度。但是,由于内存断电后会丢失数据,Spark不能用于处理需要长期保存的数据。拥有Hadoop MapReduce所具有的优点,但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代(前一步计算输出是下一步计算的输入)的Map Reduce的算法。从多迭代批处理出发,允许将数据载入内存作反复查询,此外还融合数据仓库,流处理和图形计算等多种计算范式。常用于离线的快速的大数据处理。

Spark的适用场景:

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

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

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

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

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

 

Storm:最佳的流式计算框架,用于处理高速、大型数据流的分布式实时计算系统,在动态处理大量生成的“小数据块”上要更好。

Storm在Hadoop的基础上提供了实时运算的特性,可以实时的处理大数据流。不同于Hadoop和Spark,Storm不进行数据的收集和存储工作,它直接通过网络实时的接受数据并且实时的处理数据,然后直接通过网络实时的传回结果。常用于在线的实时的大数据处理。Spark流模块先汇聚批量数据然后进行数据块分发(视作不可变数据进行处理),而Storm是只要接收到数据就实时处理并分发。

Storm的适用场景:

1)流数据处理

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

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


基本上不准备学Hadoop了,根据需求看选择Spark还是Storm。

如果需求主要集中在流处理与CEP(即复杂事件处理)式处理层面,而且需要从零开始为项目构建一套目标明确的集群设施,那么更倾向于选择Storm——特别是在现有Storm流机制能够确切满足大家集成需求的情况下。这一结论并不属于硬性要求或者强制规则,但上述因素的存在确实更适合由Storm出面打理。

在另一方面,如果打算使用现有Hadoop或者Mesos集群,而且/或者既定流程需要涉及与图形处理、SQL访问或者批量处理相关的其它实质性要求,那么Spark则值得加以优先考虑。

参见Storm与Spark:谁才是我们的实时处理利器

0 0
原创粉丝点击