关闭

spark 调度

174人阅读 评论(0) 收藏 举报
分类:

1、fair调度模式

  就是需要用户配置权重

2、配置调度池

   用户可以通过配置文件自定义调度池的属性

1、调度模式

2、权重

3、minshare  配置多少个cpu的内核


stage 和 tasksetmanager调度

 stage的调度是由dagscheduler完成的,由rdd的有向五环图dag切分除了stage的有向五环图  stage的dag通过最后执行的stage为根进行广度优先遍历,遍历到最开始执行的stage执行,如果提交的stage任有未完成的父母stage,则stage需要等待其父 stage执行完成才能执行。

整体的task分发又taskschedulerimple来实现,但是task得调度(本质上是task在哪个分区执行)逻辑由tasksetmanager完成,这个类监控整个任务的生命周期,当任务失败时  如执行时间超过一定的阈值, 重新调度,也会通过


读写流程

1、数据写入

 数据写入的简要流程,读取流程和写入流程类似,数据写入流程主要分为以下几个步骤。

 1、rdd调用compute方法进行指定分区的写入

2、cachemanager中调用blockmanager判断数据是否已经写入,如果未写入则写入

3、blockmanager中数据与其他节点同步

4、blockmanger根据存储级别写入指定的存储层

5、blockmanager向主节点回报存储状态


详细步骤如下

 入库在rdd累中通过computer方法调用 iterator方法进行某个分区 partition的读写,partition是逻辑概念,在物理上是一个block 具体实现如下

 1、在cachemanger累中,getorcompute方法通过调用blockmanager的put接口来写入数据,我们可以看到,在这里有个判断逻辑,它先从内存cache读取是否又快可以读取。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:337499次
    • 积分:4843
    • 等级:
    • 排名:第5912名
    • 原创:39篇
    • 转载:872篇
    • 译文:2篇
    • 评论:25条
    最新评论