gpt4 book ai didi

apache-spark - Spark Shuffle- worker 如何知道从何处提取数据

转载 作者:行者123 更新时间:2023-12-04 05:10:40 25 4
gpt4 key购买 nike

我正在尝试了解Spark如何在后台洗牌依赖关系。因此,我有两个问题:

  • 在Spark中,执行者如何知道还必须从其他哪些执行者中提取数据?
  • 在完成其 map task 后,每个执行者是否将其状态和位置更新到某个中央实体(可能是驱动程序),并减少侧面执行者首先与驱动程序联系以获取每个执行者的位置?
    直接从那些执行者那里拉出来,然后再从它们那里拉出来?
  • 在具有随机更改依赖关系的作业中,驱动程序是否仅在所有 map 侧任务完成后才调度联接(或其他与随机更改依赖关系相关的任务)?
  • 是否意味着每个任务都会将其状态通知驱动程序,并且驱动程序将及时编排其他相关任务。
  • 最佳答案

    我会以点数回答您的问题

    1.执行者如何知道还必须从哪些其他执行者那里提取数据?
    只是执行者不知道其他执行者会做什么,但是Driver知道您可以认为此过程是当皇后和 worker 皇后将任务推给执行者,并且每个人都将结果返回给任务。

    2.在执行其 map task 后,每个执行者是否将其状态和位置更新到某个中央实体(可能是驱动程序)

    是的,实际上驱动程序监视进程,但是当您创建SparkContext时,每个工作程序都会启动一个执行程序。这是一个单独的进程(JVM),它也会加载您的jar。执行程序重新连接到您的驱动程序。现在,驱动程序可以向他们发送命令,例如您的示例中的flatMap,map和reduceByKey。当驾驶员退出时,执行器将关闭。您也可以检查一下这个答案What is a task in Spark? How does the Spark worker execute the jar file?

    3.减少侧面执行者首先与驱动程序联系,以获取要从中撤回然后直接从这些执行者撤回的每个执行者的位置?
    Reduce任务具有与运行数据的同一台计算机上运行的优先级,因此,除非数据不可用并且没有资源,否则不会有任何改组。

    4.在具有随机更改依赖关系的作业中,是否仅在所有 map 侧任务完成后,驱动程序调度联接(或其他与随机更改依赖关系相关的任务)?

    它是可配置的,您可以更改它。您可以查看此链接以获取更多信息https://0x0fff.com/spark-architecture-shuffle/

    5.这是否意味着每个任务都会将其状态通知驱动程序,并且驱动程序将及时编排其他相关任务?

    每个任务都会通知驾驶员并向他们发送心跳信号,并激发实现推测性执行技术。因此,如果任何任务失败/缓慢 Spark 将运行另一任务。此处有更多详细信息http://asyncified.io/2016/08/13/leveraging-spark-speculation-to-identify-and-re-schedule-slow-running-tasks/

    关于apache-spark - Spark Shuffle- worker 如何知道从何处提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42105985/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com