星火文档州:
火花执行器在失败或关联应用程序也已退出时退出。在这两种情况下,与执行器关联的所有状态不再需要,可以安全丢弃。
但是,在星火集群配置和数据集导致偶尔执行程序故障OOM深入作业的情况下,死执行器编写的洗牌文件最好继续用于作业,而不是重新计算它们。
在启用外部洗牌服务的情况下,我似乎注意到星火继续提取前面提到的洗牌文件,并且只重新运行执行者去世时活动的任务。与之形成对比的是,由于外部洗牌服务被禁用,我已经看到星火重新运行了先前完成的部分阶段,以重新计算丢失的洗牌文件。
因此,如果执行程序出现故障,是否可以使用已保存的洗牌文件,就像我所观察到的那样?我想是的,但是文件让我怀疑。
我正在运行Spark3.0.1与Yarn 6.2与动态分配禁用。
当然,先发制人的评论最好是配置集群,这样执行器OOM就不会发生。然而,当最初的目标是完成昂贵的星火作业时,优化的集群配置还没有实现。正是在这个时候,面对执行者的失败,洗牌重用是很有价值的。
发布于 2021-05-12 16:21:58
你引用的一句话:
火花执行器在失败或关联应用程序也已退出时退出。在这两种情况下,与执行器关联的所有状态不再需要,可以安全丢弃。
来自“行刑人的优雅退役”一节。
这个特性的主要目的是提供一个解决方案,当Kubernetes被用作资源管理器时。在没有外部洗牌服务的地方。它正在将磁盘持久化RDD块和洗牌块迁移到其余的执行器中。
对于Yarn ,当启用外部洗牌服务时,将从作为Yarn的辅助服务运行的外部洗牌服务(在节点管理器中)获取块。该服务知道执行者的内部目录结构,并能够为块提供服务(就像在同一台主机上一样)。这样,当节点存活并且只有执行者死亡时,块就不会丢失。
https://stackoverflow.com/questions/67466878
复制相似问题