Standalone模式是Spark自身实现的资源调度框架,也就是说当不需要其他的计算框架(比如MapReduce、Storm)而只用Spark进行大数据计算时,我们就可以采用Standalone模式。它主要的结点有Client结点、Master结点和Worker结点。其中Driver既可以运行在Master结点上,也可以运行在本地客户端。当用Spark Shell交互式工具提交Spark的Job或者直接使用run-example来运行Spark官方提供的示例时,Driver在Master结点上运行;当使用spark-submit工具提交Job或者在Eclipse、IDEA等开发平台上使用“new Spark-Conf.setManager(“spark://master:7077”)”方式运行Spark任务时,Driver是运行在本地客户端上的。Worker结点可以通过ExecutorRunner来控制运行在当前结点上的CoarseGraine-dExecutorBackend进程。每个Worker上存在一个或多个CoarseGrainedExecutorBackend进程,每个进程包含一个Executor对象,该对象持有一个线程池,每个线程可以执行一个Task。Client、Master和Worker都是基于AKKA通信的actor实现的进程,彼此之间可以相互通信。
Spark的架构采用了分布式计算中常见的Master-Slaves模型,和大部分的Master-Slaves架构一样,都存在着Master单点故障问题,目前Spark提供了两种方案来解决此问题,一种是基于文件系统的故障恢复模式,这种方式适合当Master进程挂掉之后,直接重启即可;另一种方式是基于Zookeeper的HA(High Available,也就是高可用性群集)方式,Ac-tive Master挂掉之后,Standby Master会立即切换过去继续对外提供服务。(www.xing528.com)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。