任何架构都是由需求分析得来,而spark是由怎么样的需求分析而来的呢?
需求:怎样快速计算大数据
解决方案:将大量的数据分成很多块,让不同的计算机进行计算,然后再汇总起来,这就是简单的MR计算模型。
但是hadoop的MR计算模型,太单一,而且重度依赖IO,
新的需求:需求又来了,怎样又让它快,又让它计算模型复杂呢?
需求分析:
1. 非功能性需求:计算快
什么导致MR 计算模型慢呢:
在MapReduce任务内部,为了防止Reduce任务的失败,Map通常会把结果存储在磁盘上。
2. 功能需求:复杂的计算模型。
map stage 、 reduce stage
这个计算模型,如果需要复杂的怎么办呢,需要多个 MapReduce,形成一个DAG。这样不仅慢,而且很笨重。
(未完待续)