hadoop最核心的框架就是HDFS(Hadoop Distributed File System)和MapRuduce,其中HDFS是为海量数据提供存储,而MapReduce是为海量数据提供了计算。
Spark则是由加州大学伯克利分校的AMP实验室开发,由于spark的计算速度远远大于mr的速度,所以在一定程度上spark已经取代了mr,但由于spark并未提供数据存储功能,而hadoop又实现了yarn的资源管理,从而实现了可插拔性,使计算框架可以更换,所以就出现了spark和hadoop的合作即利用hadoop的hdfs来存储数据,用spark来计算数据,大大提升了计算效率。
Spark计算快的原因
1.基于内存计算;
2.基于DAG(有向无环图);
3.基于lineage;
MR计算慢的原因
- MapReduce在进行过程中首先需要从hdfs中获取数据,从而进行了一次IO操作,然后在shuffle过程中又进行了一次IO操作,最后在reduce阶段还需要进行一次IO操作,也就是说进行一次mr计算要进行三次IO操作,从而大大降低了计算效率。