前言
本系列的Spark相关内容大部分来自于尚硅谷的Spark课程,及许利杰、方亚芬老师所著的《大数据处理框架 Apache Spark 设计与实现》。
一、Spark VS Hadoop
1.Hadoop
Hadoop有着自己的生态系统,其结构在随着时间的推移变得更加丰富和完善,而Hadoop最重要的模块则是HDFS和MasoReduce。
- HDFS:是Hadoop的分布式文件系统,处于Hadoop生态圈的最下层,负责存储所有的数据;
- MapReduce:是一种编程模型,作为Hadoop的分布式计算模型,也是Hadoop的核心,负责处理海量数据。
MapReduce其实分为两部分,即Map和Reduce。在用户提交一个计算任务后,这个任务被拆分成n个Map映射任务,将前一个Map的输出作为下一个Map的输入,这个过程中数据也在分割后传输到集群中的各节点并行处理,经过一系列的转换后,将结果reduce聚合得到一个结果并输出。
Hadoop作为一种分布式的计算框架,采用“分治–聚合”的策略来处理海量数据,也因此Hadoop更适合用来处理批量数据。
2.Spark
对于数据可复用的应用场景以及流式数据处理的情况下,MapReduce显然有不足之处。Spark就是在传统的MapReduce基础上做了优化,不光解决了这些问题,在计算速度上,Spark在内存中的运行速度比Hadoop快100倍,在磁盘上的运行速度快 10倍。
Spark的几个核心模块&#x