Spark的架构图如下图所示:
从上面的架构图中,我们可以看出,整个架构可以分为一下几部分:
Client:用户提交作业的客户端
Driver:运行application的main函数,创建sparkcontext初始化运行环境, 在Spark中由SparkContext负责和ClusterManager通信,进行资源的申请、任务的分配和监控等;当Executor部分运行完毕后,Driver负责将SparkContext关闭。
ClusterManager:资源调度器,目前主流的资源调度器包括standalone cluster manager, Mesos ,YARN
Worker:可以运行application代码的节点。每个节点可以启动一个或多个executor进程,每个executor进程维护一个线程池运行多个task