0


Hadoop vs Spark

Hadoop 和 Spark 都是apache基金会下、在大数据架构中广泛使用的开源框架,两个框架都各自有各自的开源技术生态系统,用于准备、处理、管理和分析大数据集。

Hadoop 生态系统由四个主要模块组成:

HDFS): Hadoop的数据存储系统,用于管理运行在普通硬件上的大型数据集,提供高吞吐量的数据访问和高容错性。

YARN : 集群资源管理器,它为应用程序安排任务并分配资源(例如 CPU 和内存)。

Hadoop MapReduce: 将大型数据处理任务拆分为小型任务,再将小型任务分布在不同的节点上运行;

Hadoop Common (Hadoop Core) : 其他三个模块所依赖的一组通用库和实用程序

Spark生态圈包括:

Spark Core: 底层执行引擎,用于调度和分派任务,协调I/O操作,内存管理等;

Spark SQL: 处理结构化数据;

Spark streaming:实时流处理引擎,Spark Streaming 从不同的数据源获取数据,并将其划分为微批处理以形成连续的流,将处理后的结果输出到HDFS、关系型数据库等;

机器学习库(MLlib) : 一组机器学习算法,以及用于特征选择和构建机器学习管道的工具;

GraphX: 提供图计算能力,支持交互式构建、修改和分析可伸缩的图形结构数据。

Spark 是基于 Hadoop MapReduce 的增强。Spark 和 MapReduce 的主要区别在于,Spark 将中间结果保存在内存以提高处理速度,而 MapReduce 的中间结果保存在HDFS磁盘上。因此,对于较小的工作负载,Spark 的数据处理速度比 MapReduce 快。

此外,与 MapReduce 中的两阶段执行过程不同,Spark 创建了一个有向无环图(DAG)来调度任务并利用Hadoop 集群中节点的编排。这个任务跟踪过程支持容错,容错将记录的操作重新应用于来自以前状态的数据。

总结对比:

**性能: **Spark 更快,因为它使用内存而不是磁盘来保存中间结果。

**成本: **Hadoop 的运行成本较低,因为它依赖于普通磁盘存储进行数据处理;Spark 的运行成本更高,它依赖于内存进行实时数据处理,这需要使用大量的 RAM 做中转节点。

**场景: **Hadoop 适用于批处理和线性数据处理,spark适用于实时处理和处理实时非结构化数据流。

可伸缩性: 当数据量快速增长时,Hadoop 通过 HDFS快速扩展以满足需求。反过来,Spark 依赖于容错 HDFS 来处理大量数据。

安全性: Spark 通过共享秘密或事件日志来增强身份验证的安全性,而 Hadoop 使用多种身份验证和访问控制方法。综合来讲,Hadoop 更安全。 Spark可以通过与 Hadoop 集成以达到更高的安全级别。

**机器学习(ML) **: Spark更胜一筹,因为它包括 MLlib;它通过内存 进行ML 计算,还包括回归、聚类、评估等工具。

在实际应用中,spark能很好融入hadoop的生态圈,Spark 替代 Hadoop 中的 MapReduce 计算模型,存储大多仍然使用 HDFS,且使用YARN 实现资源调度管理。

标签: hadoop spark 大数据

本文转载自: https://blog.csdn.net/xiaofengjia00/article/details/141897581
版权归原作者 xiaofj100 所有, 如有侵权,请联系我们删除。

“Hadoop vs Spark”的评论:

还没有评论