当前位置: 首页 > 知识库问答 >
问题:

Spark Shuffle-工作人员如何知道从何处提取数据

金兴朝
2023-03-14

我试图理解火花是如何在引擎盖下洗牌依赖的。因此,我有两个问题:

>

  • 在Spark中,执行器如何知道从其他执行器提取数据?

    • 每个执行器在完成其映射端任务后,是否将其状态和位置更新到某个中心实体(可能是驱动程序),并且还原端执行器首先联系驱动程序以获取要从中拉出的每个执行器的位置,然后直接从这些执行器中拉出?
      null
  • 共有1个答案

    贺卜霸
    2023-03-14

    我将分点回答你的问题

    1.执行者如何知道从其他执行者那里提取数据?执行器不知道其他执行器做了什么,但是驱动程序知道你可以把这个过程看成是皇后和工人,皇后把任务推给执行器,每个执行器完成任务后返回的结果。

    2.每个执行者在完成其地图端任务后,是否将其状态和位置更新到某个中心实体(可能是驱动程序)

    4.在具有shuffle依赖关系的作业中,驱动程序是否只有在所有映射端任务完成后才调度连接(或其他关于shuffle依赖关系的任务)?

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

    5.是否意味着每个任务都会通知驱动程序它的状态,驱动程序会及时编排其他依赖的任务?

    每个任务都通知并发送心跳给驱动程序,spark实现推测执行技术。因此,如果任何任务失败/慢火花将运行另一个任务。更多详情请访问http://asyncified.io/2016/08/13/Leveraging-Spark-Spressing-to-Idential-and-re-schedule-slow-running-tasks/

     类似资料:
    • 我在databricks中使用spark结构化流媒体。在这里,我使用foreach操作对每个数据记录执行一些操作。但是我传递给foreach的函数使用了SparkSession,但它抛出了一个错误:_pickle。PicklingError:无法序列化对象:异常:似乎您正试图从广播变量、操作或转换引用SparkContext。SparkContext只能在驱动程序上使用,不能在工作程序上运行的代码

    • 问题内容: 我正在与Resque- worker(5名工人)一起工作。现在,当这项工作完成/完成时,我想触发另一个工作程序,该工作程序处理先前存储在db中的数据。什么是最合适的方法? 问题答案: 我不确定这是否有帮助,但是您看过这颗宝石吗?这样,您可以跟踪给定作业的状态,以查看其完成时间。但是我深感没有新的自动触发功能。

    • 本文向大家介绍你知道NodeJs是如何工作的吗?相关面试题,主要包含被问及你知道NodeJs是如何工作的吗?时的应答技巧和注意事项,需要的朋友参考一下 node的工作原理: node使用chrom的V8引擎来解释编译JS语言,将编译后的代码传递给libuv,在libuv中进行区别是调用linux的libev/libio还是window的IOCP实现具体操作 node中事件环工作原理:node执行J

    • 创建部门表 到目前为止,我已经收到了下面的查询,我无法得到该部门工作的员工人数。我怎么能那么做?

    • 我希望通过Workday API检索Workday worker(又名employee)的web配置文件URL。使用案例是,我正在构建一个聊天机器人来检索用户信息,我希望能够深入链接到工人(员工)的web配置文件。 问题是我不能做以下任何一项: 从API获取web配置文件URL 从API中的数据创建web配置文件URL web配置文件URL如下所示。用户ID看起来像就在扩展名,因为这是员工档案之间

    • 我正在使用Amazon AWS构建一个用于教育目的的小型应用程序。Web应用程序有两个部分: < li >用于上传图像的表单。 < li >显示上传图像的所有缩略图的网格。 用户打开网页 用户选择要上载的图像 向web层发送AJAX请求,以生成预先签名的S3 URL 收到URL后,将启动AJAX PUT请求,并将图像直接上载到S3。 上传完成后,S3发送一条带有图像密钥的SQS队列消息 其中一个工