apache-spark - 在 Yarn 集群模式下如何处理 Spark App 的异常驱动程序终止
问题描述
我们将 AWS EMR 用于 Spark 作业。我们所有的作业都以纱线集群模式提交,因此驱动程序将在集群节点之一中运行。我们使用按需节点作为主节点,使用点实例作为核心节点。现在,尽管我们几乎总是选择中断率 < 5% 的实例,但有时会发生很大一部分集群节点过早终止(可能是因为更高的需求)。
所以,我想知道,在上述情况下,如果包含驱动程序进程的节点出现故障会发生什么?在这种情况下,火花工作有恢复的机会吗?还是工作一去不复返?
解决方案
Spark 驱动程序是单点故障,因为它保存了正在运行的应用程序的所有集群状态。
在实践中,非临时存储可用于检查点批处理应用程序经过昂贵昂贵的转换。话虽如此,在这种情况下尝试重新启动是可以做到的,但是当我研究它时,至少可以说很难。我前段时间用我的名字问过这样一个问题,你可以找到它。我很有技术,但觉得:天哪,工作辛苦了。
所以,恢复意味着滚动你自己的东西,或者接受重新运行。自从我上次评估 EMR 以来,我发现驱动程序可以在 Master 上运行并且可以进行故障转移,但据我所知,这与您所希望的不同。
推荐阅读
- c# - Thread.Sleep 和 Task.Delay 杀死循环进程中的主线程
- c++ - 第一个循环按预期运行,但在第 2 次和第 3 次没有输入“输入名称”
- python - Scipy 最小化产生随机广播错误
- r - 我在姬松茸数据集中进行网格搜索时遇到问题
- python - 为什么 Sklearn 训练测试拆分返回 pandas 数据帧而不是 numpy 数组?
- json - Azure-LogicApp:解析值时遇到意外字符
- php - Laravel 5.7 验证错误未显示
- java - 将十六进制转换为二进制 - java
- amazon-web-services - 适用于 Alexa 技能的 AWS Elastic Transcoder 预设
- google-apps-script - How use the ImportRange Refresh script?