MAPREDUCE服务 MRS-Spark基本原理:Spark应用运行原理
Spark应用运行原理
Spark的应用运行架构如图 Spark应用运行架构所示,运行流程如下所示:
- 应用程序(Application)是作为一个进程的集合运行在集群上的,由Driver进行协调。
- 在运行一个应用时,Driver会去连接集群管理器(Standalone、Mesos、YARN)申请运行Executor资源,并启动ExecutorBackend。然后由集群管理器在不同的应用之间调度资源。Driver同时会启动应用程序DAG调度、Stage划分、Task生成。
- 然后Spark会把应用的代码(传递给SparkContext的JAR或者Python定义的代码)发送到Executor上。
- 所有的Task执行完成后,用户的应用程序运行结束。
Spark采用Master和Worker的模式,如图 Spark的Master和Worker所示。用户在Spark客户端提交应用程序,调度器将Job分解为多个Task发送到各个Worker中执行,各个Worker将计算的结果上报给Driver(即Master),Driver聚合结果返回给客户端。
在此结构中,有几个说明点:
- 应用之间是独立的。
每个应用有自己的executor进程,Executor启动多个线程,并行地执行任务。无论是在调度方面,或者是executor方面。各个Driver独立调度自己的任务;不同的应用任务运行在不同的JVM上,即不同的Executor。
- 不同Spark应用之间是不共享数据的,除非把数据存储在外部的存储系统上(比如HDFS)。
- 因为Driver程序在集群上调度任务,所以Driver程序建议和worker节点比较近,比如在一个相同的局部网络内。
Spark on YARN有两种部署模式:
- yarn-cluster模式下,Spark的Driver会运行在YARN集群内的ApplicationMaster进程中,ApplicationMaster已经启动之后,提交任务的客户端退出也不会影响任务的运行。
- yarn-client模式下,Driver启动在客户端进程内,ApplicationMaster进程只用来向YARN集群申请资源。
- 什么是Spark_如何使用Spark_Spark的功能是什么
- MapReduce服务_什么是存算分离_如何配置MRS集群存算分离
- MapReduce服务_什么是Yarn_如何使用Yarn
- MapReduce服务_什么是Hue_如何使用Hue
- MapReduce服务_什么是HDFS_HDFS特性
- MapReduce服务_什么是Flume_如何使用Flume
- MapReduce服务_什么是Hive_如何使用Hive
- MapReduce工作原理_MapReduce是什么意思_MapReduce流程_MRS_华为云
- Hudi服务_什么是Hudi_如何使用Hudi
- MapReduce服务_什么是ZooKeeper_如何使用ZooKeeper