大数据的两个主要框架 Hadoop 和 Spark

Hadoop (MapReduce) :分布式计算框架(批量处理计算框架)

Spark :内存计算框架(实时计算框架,内存计算框架,流式计算框架)

      Spark是通用分布式数据处理引擎,适用于多种情况。在Spark核心数据处理引擎之上,还有用于SQL,机器学习,图形计算和流处理的库,它们可以在应用程序中一起使用。 Spark支持的编程语言包括:Java,Python,Scala和R。应用程序开发人员和数据科学家将Spark集成到其应用程序中,以快速地大规模查询,分析和转换数据。与Spark最频繁相关的任务包括跨大型数据集的ETL和SQL批处理作业,来自传感器,物联网或金融系统的流数据处理以及机器学习任务。 Spark可以作为独立应用程序运行,也可以在Hadoop YARN之上运行.

Spark和MapReduce之间的区别
Apache Spark和Hadoop MapReduce之间的主要区别是:
1.性能:当所有数据都适合内存时,尤其是在专用集群上,Spark的性能会更好。 Hadoop MapReduce专为无法容纳在内存中的数据而设计,并且可以与其他服务一起良好运行。


2.使用方便性:Spark易于编程,并包含交互模式。 Hadoop MapReduce编程难度更大,但是有几种工具可以简化它。


3.数据处理:Spark是数据处理的瑞士军刀,而Hadoop MapReduce是批处理的突击队刀。


4.安全:与具有更多安全功能和项目的MapReduce相比,Spark安全性尚不完善。

但是,Spark和MapReduce之间也有一些相似之处-不足为奇,因为Spark使用MapReduce作为其基础。 Spark和MapReduce之间的相似点包括:
1,成本:Spark更具成本效益,尽管人员配备成本可能更高。 Hadoop MapReduce可能会更便宜,因为可以提供更多的人员,而且对于海量数据量来说可能更便宜


2,兼容性:Spark与各种数据类型和数据源的兼容性与Hadoop MapReduce相同


3,容错能力:Spark和Hadoop MapReduce都具有良好的容错能力,但是Hadoop MapReduce的容错性稍强。
     

 凭借其内存中数据处理功能,Spark具有出色的性能并且具有很高的成本效益。它与Hadoop的所有数据源和文件格式兼容,并且学习曲线更快,并且具有适用于多种编程语言的友好API。 Spark甚至包括图形处理和机器学习功能。

     Hadoop MapReduce是一个更成熟的平台,它是专门为批处理而构建的。对于无法容纳在内存中的超大数据,MapReduce可能比Spark更具成本效益,而且找到具有MapReduce经验的员工可能更容易。此外,由于许多支持项目,工具和云服务,MapReduce生态系统目前更大。

    但是,即使您认为Spark在这里看起来像赢家,也有可能您不会自己使用它。您仍然需要HDFS来存储数据,并且可能要使用HBase,Hive,Pig,Impala或其他Hadoop项目。这意味着您仍然需要与Spark一起运行Hadoop和MapReduce,以获取完整的大数据包。

参考:

https://www.xplenty.com/blog/apache-spark-vs-hadoop-mapreduce/

https://intellipaat.com/blog/what-is-apache-spark/

https://mapr.com/blog/spark-101-what-it-what-it-does-and-why-it-matters/

发布了96 篇原创文章 · 获赞 66 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/pengpengjy/article/details/104595761