首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么火星执行器的发射会出现延误?

为什么火星执行器的发射会出现延误?
EN

Stack Overflow用户
提问于 2020-01-26 07:19:38
回答 2查看 1.1K关注 0票数 1

当我试图优化一个火花工作时,我很难理解第二个和6-7s第三和第四执行者的发射延迟3-4秒。

这就是我要做的事:

  • 火花2.2
  • 两个工作节点,每个有8个cpu核。(主节点分开)
  • 执行器被配置为每个使用3个核心。

下面是Spark中作业选项卡的截图。

这项工作分为三个阶段。正如所见,第二、第三和第四遗嘱执行人仅在第二阶段增加。

下面是第0阶段的快照。

随着第一阶段的结束。

如上图所示,执行程序2(与第一个工作人员相同)需要大约3s才能启动。执行者3和4(对第二个工人)花费的时间更长,大约6s。

我试着使用spark.locality.wait变量:0,1s,1ms的值。但执行者的发射时间似乎没有任何变化。

还有其他原因造成这次延误吗?我还能在哪里更好地理解这一点呢?

EN

回答 2

Stack Overflow用户

发布于 2020-01-26 14:27:57

您可能有兴趣检查Spark的执行者请求策略,并检查应用程序的设置spark.dynamicAllocation.schedulerBacklogTimeoutspark.dynamicAllocation.sustainedSchedulerBacklogTimeout

启用动态分配功能的星火应用程序在有等待调度的挂起任务时请求其他执行程序。..。 在回合中激发请求执行者。当有挂起的任务持续了spark.dynamicAllocation.schedulerBacklogTimeout秒时,实际的请求就会被触发,如果挂起的任务队列持续存在,则每隔一秒钟就再次触发一次spark.dynamicAllocation.sustainedSchedulerBacklogTimeout请求。此外,每轮要求的执行者数量比上一轮呈指数增长。例如,应用程序将在第一轮中添加1个执行器,然后在随后的几轮中添加2、4、8等执行程序。

延迟的另一个潜在来源可能是spark.locality.wait。因为在第1阶段中,您有相当多的任务具有次优的本地级别(Rack : 59),而且spark.locality.wait的默认时间是3秒,所以它实际上可能是您所看到的延迟的主要原因。

票数 3
EN

Stack Overflow用户

发布于 2020-01-26 11:10:33

纱线创建执行器需要时间,对这种开销无能为力。如果您想优化,您可以设置一个星火服务器,然后为服务器创建请求,这样可以节省热身时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59916338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档