• Spark架构分析


    提交spark程序(apliaction)
    会通过反射再本机上生成一个driveractor(提交方式是standalone)
    执行application程序首先构造出sparkconf然后构造出sparkcontext
    sparkcontext初始化的时候生出两个调度器DASGSchuleder和TaskSchulerder
    TaskSchulerder会到spark集群Master上注册资源,
    Master收到注册资源请求后 会通过自己的资源调度算法,在集群的Worker上为spark应用程序启动多个executor 进程
    Executor启动会反向注册信息到TaskSchulerder上,反向注册之后结束SparkContext的初始化工作
    继续执行我们编写的spark程序,没执行一个action就会创建一个job 提交个DASGSchulerder,
    DASGSchulerder会根据stage划分算法,生成多个stage,
    每一个stage会创建一个TaskSet,然后提交个 TaskSchuleder,TaskSchuleder将任务会根据task分配算法将taskset中的每一个task提交到executor上执行,
    executor每接收到一个task都会用TaskRuner来封装Task,
    然从线程池中取出一个线程执行这个task(TaskRunner会把我们编写的代码中要执行的算子、函数 拷贝,
    反序列化然后执行task{task分为两种,一种是ShuffleMapTask,一种是ResultMapTask,只有最后一个stage的时候才是resultMapTask} )
    整个spark应用程序的执行就是 stage分批次提交到executor上执行,每一个task针对的是RDD中的一个patition,执行我们的函数和算子,以此类推知道所有
    的操作执行完为止

  • 相关阅读:
    php数据类型
    php输出语句
    php学习知识点框架
    php变量
    php语法
    php 的开发工具
    搭建php环境的几种方法
    redis 的单机安装
    三、其他主机安装zabbix-agent加入到zabbix
    内核参数优化
  • 原文地址:https://www.cnblogs.com/SupperMan/p/6871767.html
Copyright © 2020-2023  润新知