task scheduler什么意思_女贞子的功效与作用

task scheduler什么意思_女贞子的功效与作用前言本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系正文TaskScheduler的核心任务是提交TaskSet到集群运算并汇报结果。(1)为TaskSet创建和维护一个TaskSetManager,并追踪任务的本地性以及错误信息。(2)遇到Straggle任务时,会放到其他节点进行重试。(3)向DAGScheduler

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系

正文

TaskScheduler 的核心任务是提交 TaskSet 到集群运算并汇报结果。

( 1 )为 TaskSet 创建和维护一个 TaskSetManager ,并追踪任务的本地性以及错误信息。

( 2 )遇到 Straggle 任务时,会放到其他节点进行重试。

( 3 )向 DAGScheduler 汇报执行情况,包括在 Shuffle 输出丢失的时候报告 fetch failed 错误等信息。

TaskScheduler 源码类注释 (3.2.0-SNAPSHOT)

/** * 低层次的任务调度器接口,目前由 TaskSchedulerImpl 独家实现。 * * 此接口允许插入不同的任务调度程序。 * * 每个 TaskScheduler 为单个 SparkContext 安排任务。 * * 这些调度器从每个阶段的 DAGScheduler 中获取提交给它们的任务集,并负责将任务发送到集群、运行它们、在出现故障时重试以及减轻 straggle。 * * 它们将事件返回给 DAGScheduler。 */
private[spark] trait TaskScheduler

TaskSchedulerImpl 源码类注释 (3.2.0-SNAPSHOT)

/** * 通过 SchedulerBackend 为多种类型的集群调度任务。 * * 它还可以通过使用 LocalSchedulerBackend 并将 isLocal 设置为true来使用本地设置。 * * 它处理常见的逻辑,如确定作业之间的调度顺序、唤醒以启动推测性任务等。 * * 客户端应该首先调用initialize() 和start(),然后通过 submitTasks 方法提交任务集。 * * 线程:SchedulerBackends 和任务提交客户端可以从多个线程调用此类,因此它需要公共API方法中的锁来维护其状态。 * * 另外,一些 SchedulerBackends 要在这里发送事件时会自动同步,然后获取对我们的锁定,因此我们需要确保在锁定自己时不会尝试锁定后端。 * * 这个类是从许多线程调用的,特别是: * * * The DAGScheduler Event Loop * * The RPCHandler threads, 用来响应 Executors 的状态更新。 * * 周期性地恢复来自 CoarseGrainedSchedulerBackend 的所有供给,以适应延迟调度 * * task-result-getter threads * * 注意:Spark-RPC 框架中抛出的任何非致命异常都可能被吞没。 * * 因此,在resourceOffers、statusUpdate 等方法中引发异常不会使应用程序失败,但可能导致未定义的行为。 * * 相反,我们应该使用类似 TaskSetManger.abort() 的方法中止一个阶段,然后使应用程序失败(SPARK-31485)。 * * 延迟调度:延迟调度是一种为了提高集群和工作负载吞吐量而牺牲数据局部性的作业公平性的优化。 * * “延迟”的一个有意义的定义是自任务集使用其公平的资源份额以来经过了多少时间。 * * 由于在没有完全模拟的情况下计算此延迟是不切实际的,因此使用的启发式方法是 TaskSetManager 上次启动任务后的时间, * * 并且自上次提供其“公平份额”以来,没有因延迟调度而拒绝任何资源。 * * 当 resourceOffers 的参数“isAllFreeResources”设置为true时,启用“公平共享”。 * * “延迟调度拒绝”是指尽管存在挂起的任务(在TaskSetManager中实现),但资源未被利用的情况。 * * 传统的启发式方法只测量 TaskSetManager 上次启动任务以来的时间,可以通过将 spark.locality.wait.legacyResetOnTaskLaunch 设置为 true 来重新启用。 */
private[spark] class TaskSchedulerImpl
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183052.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Hash散列[通俗易懂]

    Hash散列[通俗易懂]为了速度而散列HashMap速度总所周知是非常快的,但是为什么会这么快,是因为它的散列技术,下面简单理解一下散列知识散列的价值在于速度,使得查询得以快速。一般容器查询的速度的瓶颈位于键的查询,采取的做法一般是对键进行排序,但散热则不是散列的特点散列的做法,通常把键保存到某个地方,存储一组元素最快的数据结构就是数组,所以用它来保存键的信息(不是键本身),但是由于…

    2022年5月14日
    51
  • web应用开发技术(第二版)崔尚森第八章部分作业

    web应用开发技术(第二版)崔尚森第八章部分作业

    2021年7月4日
    73
  • 进程处于挂起状态表示_挂起进程转换图

    进程处于挂起状态表示_挂起进程转换图文章目录引言挂起状态是什么?挂起状态和阻塞状态有什么区别?如何主动挂起程序总结引言以前对于这个概念始终比较模糊,遂在解决后记录博客,希望帮助到有同样问题的朋友。挂起状态是什么?我们一般认为进程有五个状态,即新建态,就绪态,阻塞态,运行态,终止态。而在这些状态之外还存在着一个状态,我们称之为挂起状态,它既可以是我们客户主动使得进程挂起,也可以是操作系统因为某些原因使得进程挂起。总而言之引入挂起状态的原因有以下几种:用户的请求:可能是在程序运行期间发现了可疑的问题,需要暂停进程。父进程的请求:

    2025年7月2日
    0
  • python中的eval函数的用法_isnan函数

    python中的eval函数的用法_isnan函数eval函数在Python中具有非常重要的地位,熟练的使用eval函数能够为我们的Python编程提供很多的便利之处。在本文中我将详细记录eval函数在Python中的使用方法及它带来便利时带来的一些其他危害,希望您阅读完本文后能够有所收获。欢迎在文章下方留言共同交流学习。

    2022年10月23日
    0
  • Python处理Excel数据的方法[通俗易懂]

    Python处理Excel数据的方法[通俗易懂]当Excel中有大量需要进行处理的数据时,使用Python不失为一种便捷易学的方法。接下来,本文将详细介绍多种Python方法来处理Excel数据。

    2025年7月28日
    1
  • 英语单词记忆法拆分2000个_什么是hash算法

    英语单词记忆法拆分2000个_什么是hash算法给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入:s = “catsanddog”wordDict = [“cat”, “cats”, “and”, “sand”, “dog”]输出:[ “cats and dog”, “cat sand dog”]示例 2:输入:s = “

    2022年8月9日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号