赞
踩
上节我们完成了如下的内容:
在技术的不断迭代中,一路发展,三代技术引擎:
MapReduce和Spark都是类MR的处理引擎,底层原理非常相似。
Spark的发展历程如下图:
从狭义上看:Hadoop是一个分布式框架,由存储、资源调度、计算三部分组成
Spark是一个分布式计算引擎,是由Scala编写的计算框架,基于内存的快速、通用、可扩展的大数据分析引擎。
从广义上看:Spark是Hadoop生态中不可或缺的一部分。
相对于Spark,Spark的设计要更高效,Spark在借鉴MapReduce优点的同时,很好的解决了MapReduce所面临的问题:
Spark的计算模式也属于MapReduce,是对MR框架的优化。
在面对上述的三个场景中,我们通常的解决方案是:
但是对应的也带来一些新的问题:
Spark运行包括如下:
ClusterManager 是集群资源的管理者,Spark支持3中集群部署模式:
WorkerNode是工作节点,负责管理本地资源。
运行应用的 main() 方法并且创建了 SparkContext。由ClusterManager分配资源,SparkContext发送Task到Executor上执行。
Executor在工作节点上运行,执行Driver发送的Task,并向Driver汇报计算结果。
Coarse-grained Mode:每个程序的运行由一个Driver和若干个Executor组成,其中每个Executor占用若干资源,内部可以运行多个Task。应用程序的各个任务正式运行之前,需要将运行环境中的资源全部申请好,且运行过程中需要一直占用着这些资源,即使不用,最后程序运行结束后,自动回收这些资源。
鉴于粗粒度模式造成的大量资源的浪费,SparkOnMesos还提供了另一个调度模式就是细粒度模式。
这种模式类似于现在的云计算思想,核心是按需分配。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。