主页 > 新闻资讯 > Spark启动流程:Spark运行架构解析

Spark启动流程:Spark运行架构解析

作者:张老师 浏览次数: 2020-02-14 17:22
Spark计算框架,在大数据领域受到越来越多的关注和认可,相对于早期的Hadoop,Spark在计算性能上确实有着极大的提升,而这也是Spark框架在行业当中的竞争优势所在。作为大数据开发人员,对于Spark启动流程、运行架构等方面的知识,需要更深入地了解和掌握。

要理解Spark总体架构,我们首先要对几个概念名词了解清楚:集群资源管理器(Cluster Manager)、多个运行作业任务的工作结点(Worker Node)、每个应用的任务控制结点(Driver)和每个工作结点上负责具体任务的执行进程(Executor)。

Spark启动流程

Cluster Manager、Worker Node、Driver、Executor这是Spark运行架构当中的重要组成者。

Cluster Manager负责申请和管理在Worker Node上运行应用所需的资源,目前包括Spark原生的Cluster Manager、Mesos Cluster Manager和Hadoop YARN Cluster Manager。

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

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

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

一定程度上来说,Spark对于MapReduce计算框架的优势,也来自于Spark采用的Executor。因为Executor利用多线程来执行具体任务,相比MapReduce的进程模型,使用的资源和启动开销要小很多。

Executor中有一个BlockManager存储模块,会将内存和磁盘共同作为存储设备,当需要多轮迭代计算的时候,可以将中间结果存储到这个存储模块里,供下次需要时直接使用,而不需要从磁盘中读取,从而有效减少I/O开销,在交互式查询场景下,可以预先将数据缓存到BlockManager存储模块上,从而提高读写I/O性能。

总体来说,Spark启动流程也就是这几个角色的相互配合,共同来完成这些大规模数据计算任务。Spark也得益于这样的运行架构,才能在实际的数据处理任务当中具备高效率,低延迟的特性。成都加米谷大数据,大数据技术分享,大数据培训班课程,更多详情可联系客服了解!
热点排行
推荐文章
立即申请>>