spark系统架构与节点

spark 采用主从(master/slave)架构构建计算机集群
其中client为提交spark程序的节点。其余为spark分布式集群中的物理节点,可以分为两类,集群管理节点(clustermaster)和从节点(slave)
clustermaster节点:clustermaster是整个集群的核心,它并不执行实际的计算任务,而是负责管理整个集群的计算资源(除clustermaster节点外其他物理主机的内存,cpu处理器等物理资源)这些计算资源都由clustermaster节点进行统一管理,并将资源合理地分配给用户提交的各个应用程序。所有的计算节点都要向clustermaster节点进行注册,将自身的计算资源交给clustermaster节点进行统一调度。clustermaster节点随时监控了解这些注册的节点的运行状况,以便给应用程序提供合理的资源分配。需要注意的是,clustermaster节点是一个逻辑上的概念,当spark采用不同的模式运行时,clustermaster就对应这些模式中相应管理节点。例如,以standalone模式运行时,cluster节点就是运行master服务的节点。以yarn模式运行spark时,clustermaster节点为yarn中的resourcemanager节点,而以mesos运行spark时,对应的clustermaster节点则为mesos中的master节点。
slave节点:根据功能不同分为两类:任务调度节点(driver)和任务执行节点(worker)区分这两种节点的方法就是看slave节点运行着那种功能进程。
driver节点:运行spark程序main函数所在的进程。在spark集群中,driver进程可以运行在提交spark程序的client节点上,也可以是某个worker节点。例如,当运行spark shell时。实际上启动了一个spark程序,因此,我们的电脑就是driver节点。driver节点作为整个应用程序逻辑的起点,负责创建sparkcontext,定义一个或多个rdd,同时driver进程还可以看做是整个应用程序的大脑。driver主要负责两方面的工作:(1)负责将一个应用程序分割为物理上可执行的任务(task),在spark中。task是物理上可执行的最小单元,一个应用程序可以启动成百上千的独立task。(2)对于应用程序所产生的task,driver进程将task任务分配到最合适的worker节点上运行,并协调这些task在worker上完成运行。
worker节点:运行executor进程的节点为worker节点,spark为每一应用程序在worker节点上创建一个executor进程,executor进程是实际物理任务的执行者。executor进程负责两方面的工作:(1)负责执行组成应用程序的独立task计算任务,并将执行的结果反馈给driver节点,(2)executor进程为rdd提供内存存储

猜你喜欢

转载自blog.csdn.net/weixin_37353303/article/details/84531505
今日推荐