很多初学Hadoop开发的同学分不清Hadoop和Spark究竟有什么联系?

搞不清Hadoop和Spark是两个独立的框架,还是必须相互依存才能完成工作?

今天就给大家分析一下Hadoop和Spark几点区别。


Hadoop和Spark各是什么?

  • Hadoop

Hadoop是一分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。

利用集群的威力进行高速运算和存储。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供存储,MapReduce为海量的数据提供计算。

  • Spark

Spark 是专为大规模数据处理而设计的快速通用的计算引擎。是类Hadoop MapReduce的通用并行框架,拥有Hadoop MapReduce所具有的优点。


Hadoop和Spark的异同大致可以分为以下几点

1.处理问题的层面不同

  • hadoop

Hadoop实质上更多是一个分布式数据基础设施: 它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,同时还会索引和跟踪这些数据,大幅度提升大数据处理和分析效率。

  • spark

Spark,是一个专门用来对那些分布式存储的大数据进行处理的工具,自身不会进行数据的存储。

2.即可搭配工作,也可独立运行

  • hadoop

Hadoop可以独立完成数据的存储和处理工作,因为其除了提供HDFS分布式数据存储功能,还提供MapReduce数据处理功能。

  • spark

Spark没有提供文件管理系统,它必须和其他的分布式文件系统进行集成才能运作。可以选择Hadoop的HDFS,也可以选择其他平台。

3.Spark数据处理速度远超MapReduce

  • hadoop

Hadoop是磁盘级计算,计算时需要在磁盘中读取数据;其采用的是MapReduce的逻辑,把数据进行切片计算用这种方式来处理大量的离线数据.

  • spark

Spark,它会在内存中以接近“实时”的时间完成所有的数据分析。Spark的批处理速度比MapReduce快近10倍,内存中的数据分析速度则快近100倍。

比如实时的市场活动,在线产品推荐等需要对流数据进行分析场景就要使用Spark。

4.灾难恢复

  • hadoop

Hadoop将每次处理后的数据写入磁盘中,对应对系统错误具有天生优势。

  • spark

Spark的数据对象存储在弹性分布式数据集(RDD:)中。“这些数据对象既可放在内存,也可以放在磁盘,所以RDD也提供完整的灾难恢复功能。



转载于:https://blog.51cto.com/ijiajia/1958745