Spark的架构概述(章节一)的架构概述(章节一)
Spark的架构概述(章节一)的架构概述(章节一)
背景介绍背景介绍
Spark是一个快如闪电的统一分析引擎(计算框架)用于大规模数据集的处理。Spark在做数据的批处理计算,计算性能大约是Hadoop MapReduce的10~100倍,因为Spark使用比较
先进的基于DAG 任务调度(有向无环计算),可以将一个任务拆分成若干个阶段,然后将这些阶段分批次交给集群计算节点处理。
mapreduce计算分为两步,map阶段和reduce阶段,如果两步处理不了结果,则需要再次进行mapreduce计算,反复从磁盘上读写数据,从而降低效率。而spark是基于内存的计算,
每次计算分为若干个阶段,从磁盘中读取一次数据后,直接在内存中完成计算,最后将结果存入磁盘中。
MapReduce VS Spark
MapReduce作为第代数据处理框架,在设计初期只是为了满基于海量数据级的海量数据计算的迫切需求。2006年剥离Nutch(Java搜索引擎)程,主要解决的是早期们对数据的
初级认知所临的问题。
随着时间的推移,们开始探索使Map Reduce计算框架完成些复杂的阶算法,往往这些算法通常不能通过1次性的Map Reduce迭代计算完成。由于Map Reduce计算模型总是把结
果存储到磁盘中,每次迭代都需要将数据磁盘加载到内存,这就为后续的迭代带来了更多延。
Spark发展如此之快是因为Spark在计算层明显优于Hadoop的Map Reduce这磁盘迭代计算,因为Spark可以使内存对数据做计算,且计算的中间结果也可以缓存在内存中,这就为
后续的迭代计算节省了时间,幅度的提升了针对于海量数据的计算效率。
不仅如此Spark在设计理念中也提出了 One stack ruled them all 战略,并且提供了基于Spark批处理上的计算服务分例如:实现基于Spark的交互查询、近实时流处理、机器学习、
Grahx 图形关系存储等。