Spark与Hadoop的相同与区别
Spark与Hadoop的相同与区别
[TOC]
相同点
- 两者都是基于MR模型来进行并行计算的
- 二者的读取数据都阔以来自 HDFS
区别
数据来源
Spark 的数据源阔以来自多个源:Kafka、HDFS、本地文件等等
Hadoop的数据源只能来自 HDFS
运行机制
Spark 的运行基于内存,速度很快,按照官方的说法是Hadoop的10倍
Hadoop 的运行基于磁盘,频繁的I/O,速度很慢
作业名称
Spark 提交的任务成为 application
Hadoop 的一个作业成为 job,job里面分为 map task、和 reduce task,每个 task 都在自己的进程中运行,task 结束,进程也结束
容错性
- Spark的数据对象存储在弹性分布式数据集 RDD,RDD是分布在一组节点中的只读对象集合,如果数据集一部分丢失,则可以根据于数据衍生过程对它们进行重建。而且RDD 计算时可以通过 CheckPoint 来实现容错
- Hadoop将每次处理后的数据都写入到磁盘上,基本谈不上断电或者出错数据丢失的情况
应用场景
- Hadoop是一个分布式数据存储架构,它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,降低了硬件的成本
- Spark是那么一个专门用来对那些分布式存储的大数据进行处理的工具,它要借助hdfs的数据存储
二者联系
Hadoop提供分布式数据存储功能HDFS,还提供了用于数据处理的MapReduce。
MapReduce是可以不依靠spark数据的处理的。当然Spark也可以不依靠HDFS进行运作,它可以依靠其它的分布式文件系统。
但是两者完全可以结合在一起,hadoop提供分布式 集群和分布式 文件系统,spark可以依附在hadoop的HDFS代替MapReduce弥补MapReduce计算能力不足的问题。
总结如下
Spark在Hadoop肩膀上可以让大数据跑的更快
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!