spark与hadoop对比
spark就相当于是Hadoop的升级版本,对于MapReduce进行了再一次的优化
Hadoop
- Hadoop 是由 java 语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架
- 作为 Hadoop 分布式文件系统,HDFS 处于 Hadoop 生态圈的最下层,存储着所有的数据 ,支持着 Hadoop的所有服务。理论基础源于Google的TheGoogleFileSystem这篇论文,是GFS的开源实现
- MapReduce是一种编程模型,Hadoop根据Google的MapReduce论文将其实现,作为Hadoop的分布式计算模型,是 Hadoop的核心。基于这个框架,分布式并行程序的编写变得异常简单。综合了 HDFS 的分布式存储和MapReduce 的分布式计算,Hadoop在处理海量数据时,性能横向扩展变得非常容易
Spark
- Spark 是一种由 Scala 语言开发的快速、通用、可扩展的大数据分析引擎
- Spark Core 中提供了 Spark 最基础与最核心的功能
- Spark SQL 是 Spark 用来操作结构化数据的组件。通过 Spark SQL,用户可以使用SQL 或者 Apache Hive 版本的 SQL 方言(HQL)来查询数据
- Spark Streaming 是 Spark 平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的 API
根本区别在于:Spark多个作业之间数据通信是基于内存,而Hadoop是基于磁盘,由于Spark是基于内存的,有时候会由于内存资源不足导致Job执行失败,所以Spark并不能完全的替代MapReduce