跳到主要内容

简述Spark on YARN运行过程 ?

参考答案:

Spark on YARN的运行过程涉及多个组件和步骤。YARN作为集群的资源管理系统,负责整个集群的资源管理和分配。在Spark on YARN的运行过程中,ResourceManager、ApplicationMaster、NodeManager和Container等YARN组件起着关键作用。

首先,ResourceManager负责整个集群的资源管理和分配。当Spark应用程序提交到YARN时,ResourceManager会为其分配资源。

接下来,ApplicationMaster(AM)是YARN中每个Application对应的进程,负责与ResourceManager协商获取资源。一旦获取到资源,AM会告诉NodeManager为其分配并启动Container。

NodeManager是每个节点的资源和任务管理器,负责启动/停止Container,并监视资源使用情况。

在Spark on YARN中,有两种部署模式:Client模式和Cluster模式。这两种模式的区别在于Driver程序运行的位置。在Client模式下,Driver程序在客户端上运行,与YARN集群进行交互,提交任务并获取结果。而在Cluster模式下,Driver程序在YARN中运行,应用的运行结果不能在客户端直接显示,而是保存在外部存储介质中。

在Spark on YARN的运行过程中,Spark的Driver会与ClusterManager(即YARN)进行通信,进行资源申请、任务分配并监督其运行状况等。DAGScheduler会将Spark作业转换成Stage的DAG图,以便进行任务的调度和执行。

总的来说,Spark on YARN的运行过程是通过YARN的资源管理和调度机制,为Spark应用程序提供资源分配、任务执行和容错处理等功能。这个过程涉及多个组件的协同工作,确保Spark应用程序能够在YARN集群上稳定高效地运行。