zoukankan      html  css  js  c++  java
  • Spark名词解释

    名词解释:

    1. Standalone模式下存在的角色。
    

    【Client】:客户端进程,负责提交作业到Master。

    【Master】:Standalone模式中主控节点,负责接收Client提交的作业,管理Worker,并命令Worker启动Driver和Executor。

    Master.scala

    private def schedule(): Unit = {
        if (state != RecoveryState.ALIVE) { return }
        // Drivers take strict precedence over executors
        val shuffledWorkers = Random.shuffle(workers) // Randomization helps balance drivers
        for (worker <- shuffledWorkers if worker.state == WorkerState.ALIVE) {
          for (driver <- waitingDrivers) {
            if (worker.memoryFree >= driver.desc.mem && worker.coresFree >= driver.desc.cores) {
              launchDriver(worker, driver)//1.先启动Driver
              waitingDrivers -= driver
            }
          }
        }
        startExecutorsOnWorkers()//2.启动Workers上面的Executors
      }

    【Worker】:Standalone模式中slave节点上的守护进程,负责管理本节点的资源,定期向Master汇报心跳,接收Master的命令,启动Driver和Executor。

    【Driver】: 一个Spark作业运行时包括一个Driver进程,也是作业的主进程,负责作业的解析、生成Stage并调度Task到Executor上。包括DAGScheduler,TaskScheduler。

    【Executor】:即真正执行作业的地方,一个集群一般包含多个Executor,每个Executor接收Driver的命令Launch Task,一个Executor可以执行一到多个Task。 
    到 
    多个Task。

    2.作业相关的名词解释
    

    【Stage】:一个Spark作业一般包含一到多个Stage。

    【Task】:一个Stage包含一到多个Task,通过多个Task实现并行运行的功能。

    【DAGScheduler】: 实现将Spark作业分解成一到多个Stage,每个Stage根据RDD的Partition个数决定Task的个数,然后生成相应的Task set放到TaskScheduler中。

    【TaskScheduler】:实现Task分配到Executor上执行。

  • 相关阅读:
    golang之panic,recover,defer
    Golang之函数练习
    Golang之strings包
    Golang之字符串操作(反转中英文字符串)
    keil中使用——变参数宏__VA_ARGS__
    到底该不该用RTOS——rtos的优点
    c语言联合union的使用用途
    c语言的#和##的用法
    c语言位域的使用注意事项——数据溢出
    基于 Keil MDK 移植 RT-Thread Nano
  • 原文地址:https://www.cnblogs.com/luoxuehuan/p/5476847.html
Copyright © 2011-2022 走看看