Apache Spark 在 YARN 中部署时如何处理系统故障?

Posted

技术标签:

【中文标题】Apache Spark 在 YARN 中部署时如何处理系统故障?【英文标题】:How does Apache Spark handles system failure when deployed in YARN? 【发布时间】:2014-07-15 15:49:53 【问题描述】:

前提条件

假设 Apache Spark 使用 YARN 部署在 hadoop 集群上。此外,火花执行正在运行。 spark如何处理下列情况?

案例和问题

    hadoop 集群的一个节点由于磁盘错误而失败。但是复制足够高,没有数据丢失。 在该节点上运行的任务会发生什么? hadoop 集群的一个节点由于磁盘错误而失败。复制不够足够高,数据丢失。只是 spark 无法再找到预先配置为工作流资源的文件。 它将如何处理这种情况? 在执行期间,主名称节点故障转移。 spark 是否自动使用了故障转移名称节点? 如果辅助 namenode 也失败了会发生什么? 由于工作流程中的某些原因,集群完全关闭。 spark 会自动重启集群吗? 它会在工作流程中恢复到最后一个“保存”点吗?

我知道,有些问题可能听起来很奇怪。无论如何,我希望你能回答一些或全部。 提前致谢。 :)

【问题讨论】:

你为什么不试试呢?在我看来,这看起来并不难。 @ThomasJungblut 如果他尝试这些东西并恢复火花,他不一定知道如何或为什么,更不用说尝试这些东西需要很多时间,而且可能需要金钱,如果有人立即知道答案,这对看到此问题的人会有所帮助 @ThomasJungblut Spark 可能有本地模式,但它不模拟纱线。此外,我还没有硬件,想尽可能多地了解 spark,因为我不确定我们是否会使用它。创建一个完整的设置(单节点上的hadoop+spark)超出了范围并且花费了很多时间。因此,我想看看体验是什么。 @aaronman 我不使用 spark,但他们的论文回答了两个问题。其余由 Hadoop 设计文档提供。除此之外,这对于***来说是题外话,我认为你不需要一个集群。使用 Whirr 在云中启动两个虚拟机并检查一下 - 最高 30 美元。 @ThomasJungblut 是的,问题已由论文回答,但纱线上的情况可能会有所不同,如果您承认可能要花 30 美元无缘无故地支付这笔费用。这个问题完全是关于主题的,它询问 spark 的恢复机制以及在 YARN 上部署是否会影响恢复 【参考方案1】:

以下是the mailing list 对问题的回答(Cloudera 的 Sandy Ryza 提供的答案):

    “Spark 将在不同的节点上重新运行这些任务。” “在多次尝试读取块失败的任务尝试后,Spark 将忽略 HDFS 返回的任何错误并导致作业失败。” “Spark 通过普通的 HDFS 客户端 API 访问 HDFS。在 HA 配置下,这些将自动故障转移到新的 namenode。如果没有留下 namenode,Spark 作业将失败。” 重新启动是管理的一部分,“Spark 支持对 HDFS 进行检查点,因此您可以返回到上次调用检查点时 HDFS 可用。”

【讨论】:

如果它是公开的,您能否提供一个指向相关邮件列表线程的链接? @Jayraj 我在答案中添加了所需的链接! 谢谢!真快! 回答 4. 是说当服务器重新启动时,spark会继续这个过程吗?从上一个保存点开始?

以上是关于Apache Spark 在 YARN 中部署时如何处理系统故障?的主要内容,如果未能解决你的问题,请参考以下文章

Spark Yarn模式部署

Spark 2.4 集群部署(on Yarn模式)

Spark HA on yarn 最简易安装。

Apache Spark探秘:三种分布式部署方式比较

Spark on YARN的部署

在 YARN 中为 Apache zeppelin 分配 Spark 内存