Spark 架构

整体上Spark分为以下几个主要的子模块:

deploy: deply模块包括Master,Work和Client,参见architecture图的最上 部分。deploy主要负责启动和调度用户实现的Spark application并且分配资源给用户 application,类似于Hadoop YARN框架。
scheduler: scheduler主要负责调度用户application内的tasks,根据部署方式的不 同Spark实现了多种不同的scheduler,包括LocalScheduler,ClusterScheduler等 。
rdd: rdd类似于一个分布式的数据集,用户可以根据rdd所提供的api进行数据集的 操作,rdd模块是用户交互的主要模块。
storage: storage模块主要负责数据集,也就是rdd的存取。根据设定的不同,数 据可以保存在内存、磁盘或是两者。Spark与Hadoop MapReduce最大的不同在于MapReduce 将数据保存在HDFS上,而Spark则由自己的存储系统。

references

http://jerryshao.me/architecture/2013/03/29/spark-overview/