Spark核心类介绍

Spark核心类介绍

  1. SparkContent
    SparkContext是Spark的入口,负责连接Spark集群,创建RDD,累积量和广播量等。
    其中有两个关键调度器会在SparkContext实例化时启动:

    1. dagScheduler: DAGScheduler
    2. taskScheduler: TaskScheduler
  2. DAGScheduler
    DAGScheduler主要属性:

    1. eventProcessLoop = new DAGSchedulerEventProcessLoop(this)
    2. jobIdToActiveJob = new HashMap[Int, ActiveJob] 保存jobId和ActiveJob的映射关系
      主要方法:
    3. dagScheduler.handleJobSubmitted()
    4. dagScheduler.handleStageCancellation()
    5. dagScheduler.handleJobCancellation()
    6. dagScheduler.handleJobGroupCancelled()
    7. dagScheduler.doCancelAllJobs()
    8. dagScheduler.handleExecutorAdded()
    9. dagScheduler.handleExecutorLost()
    10. dagScheduler.handleBeginEvent()
    11. dagScheduler.handleBeginEvent()
    12. dagScheduler.handleGetTaskResult()
    13. dagScheduler.handleTaskCompletion()
    14. dagScheduler.handleTaskSetFailed()
    15. dagScheduler.resubmitFailedStages()

    以上方法DAGSchedulerEventProcessLoop.onReceive(event) 中被调用,主要是根据不同的event对象选择不同的处理方式,
    生成对应的job并放入jobIdToActiveJob中

  3. DAGSchedulerEventProcessLoop
    DAGSchedulerEventProcessLoop的架构其实非常简单,继承了EventLoop[DAGSchedulerEvent]
    主要功能:

    1. eventQueue: BlockingQueue[E], 所有需要DAGScheduler处理的事情都需要往eventQueue中发送event
    2. eventThread 会不断的从eventQueue中获取event并处理,并调用onReceive(event)
    3. onReceive(event) DAG调度处理的入库,根据接收到得不同event选择不同的处理方式.
  4. TaskScheduler
    主要功能:
    DAGScheduler为每一个stage生成的tasks在这里进行调度,分发到集群上
    待续….

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值