spark学习笔记-spark基本概念与框架理解

    xiaoxiao2021-03-25  100

    spark架构

    master:集群资源管理和调度

    worker:单个节点的资源管理

    executor:对数据进行并行处理

    driver:应用逻辑执行的起点

     

    spark构成

    clustermanager:standlone模式中为master,即主节点,控制整个集群,监控worker,在yarn模式中为资源管理器。

    worker:从节点,负责控制计算节点,启动executor或driver,在yarn模式中为nodemanger,负责计算节点的控制。

    driver:运行application的main函数,并且创建sparkcontext。

    executor:执行器,是为某个application运行在worker 弄得上的一个进程,启动线程池运行任务,每个application拥有独立的一组executors。

    sparkcontext:整个应用的上下文,控制应用的生命周期。

    rdd:spark的基本计算单元,一组rdd形成执行的有向无环图rddgraph。

    dag scheduler :根据job构建基于stage的dag, 并提交给taskscheduler.

    taskscheduler:将task分发给executor执行

    sparkenv: 线程级别的上下文,存储运行时的重要组件的引用。

     

    client提交应用,master找到一个worker启动driver,driver向master或者资源管理器申请资源,之后将应用转换为rdd graph, dagscheduler将rdd graph转换为stage的有向无环图提交给taskscheduler,由taskschedule提交任务给executor进行执行。任务执行过程中其他组件协同工作确保整个应用顺利执行。

     

     

    spark的工作机制

     

    spark作业:

      application:用户自定义的spark 程序,用户提交后,spark为APP分配资源将程序转换执行。

             driverprogram:运行application的main函数并且创建sparkcontext。

             rdddag: 当rdd遇到action算子,将之前的所有算子形成一个有向无环图。再在spark中转换为job,提交到集群进行执行。一个APP中可以包含多个job。

             job:一个rdd graph触发的作业,往往是由sparkaction算子触发,在sparkcontext中通过runjob方法向spark提交job。

           stage:每个job会根据rdd 的宽依赖关系被切分成很多stage,每个stage中包含一组相同的task,这一组task也叫taskset。

             task:一个分区对应一个task,task执行rdd中对应stage中所包含的算子,task被封装好后放入executor的线程池中执行。

     

    spark运行流程

     spark程序转换

      输入数据块

      根据调度策略执行各个stage的tasks

       输出结果返回

     

     

    spark计算模型

       数据结构RDD + 算法(transformation, action)

    转载请注明原文地址: https://ju.6miu.com/read-19326.html

    最新回复(0)