主页 > 新闻资讯 > Spark架构:Spark总体架构及运行流程

Spark架构:Spark总体架构及运行流程

作者:张老师 浏览次数: 2020-02-21 16:59
作为主流大数据计算引擎之一的Spark,将自己定义为一个大一统的软件栈,因为相较于第一代Hadoop框架在计算性能上的提升,而得到广泛的应用,而Spark计算性能放入提升,与其架构设计有很大的关系。关于Spark架构,今天我们就来详细地聊一聊。

Spark架构

Spark架构当中,涉及到几个非常重要的概念:

集群资源管理器(Cluster Manager)、多个运行作业任务的工作节点(Worker Node)、每个应用的任务控制节点(Driver)和每个工作节点上负责具体任务的执行进程(Executor)。

Cluster Manager负责申请和管理在Worker Node上运行应用所需的资源,根据Spark集群模式的不同,可以是Spark原生的Cluster Manager,或者第三方的工具比如Mesos或者YARN。

Driver是运行Spark Applicaion的main()函数,它会创建SparkContext。SparkContext负责和Cluster Manager通信,进行资源申请、任务分配和监控等。

Executor是Application运行在Worker Node上的一个进程,负责运行Task(任务),并且负责将数据存在内存或者磁盘上,每个Application都有各自独立的一批Executor。每个Executor则包含了一定数量的资源来运行分配给它的任务。

每个Worker Node上的Executor服务于不同的Application,它们之间是不可以共享数据的。

基于这样的Spark架构模式,Spark运行流程可以进行简化的描述:

1)构建Spark Application的运行环境(启动SparkContext),SparkContext向Cluster Manager注册,并申请运行Executor资源。

2)Cluster Manager为Executor分配资源并启动Executor进程,Executor运行情况将随着“心跳”发送到Cluster Manager上。

3)SparkContext构建DAG图,将DAG图分解成多个Stage,并把每个Stage的TaskSet(任务集)发送给Task Scheduler(任务调度器)。Executor向SparkContext申请Task,Task Scheduler将Task发放给Executor,同时,SparkContext将应用程序代码发放给Executor。

4)Task在Executor上运行,把执行结果反馈给Task Scheduler,然后再反馈给DAG Scheduler。运行完毕后写入数据,SparkContext向ClusterManager注销并释放所有资源。

关于Spark架构及其运行流程,以上就是今天的分享了。作为大数据计算领域的第二代计算框架,Spark架构的合理性,带来了系统运行的稳定以及计算效率的提升,在学习当中对Spark架构要多加理解和掌握。成都加米谷大数据,专业大数据培训机构,大数据开发2月班正在招生中,余位不多,详情可联系客服了解!
热点排行
推荐文章
立即申请>>