当前位置:主页 > java教程 > Spark 集群任务失败故障处理

Spark 集群执行任务失败的故障处理方法

发布:2023-03-25 09:50:02 59


给大家整理一篇相关的编程文章,网友冯泽恩根据主题投稿了本篇教程内容,涉及到Spark、集群任务失败故障处理、Spark、执行任务故障处理、Spark 集群任务失败故障处理相关内容,已被392网友关注,涉猎到的知识点内容可以在下方电子书获得。

Spark 集群任务失败故障处理

引言

昨天(2023-02-22)开始发现公司 Spark 集群上出现一些任务执行时间过长最后失败,具体表现包括:

大量执行失败的 Task,最终任务也是失败的

  • 在 Spark Master 管理界面上看到任务的 Driver 地址不是真实 IP 地址,而是一个叫做“host.containers.internal”的主机名;
  • Spark 的 worker 节点上能观察到在不停的创建 Java 进程,然后进程瞬间就结束了;
  • 进入 worker 节点的日志目录查看日志内容,发现异常信息为连接 “host.containers.internal” 这个地址失败。

所以显然当前出现的问题跟“host.containers.internal”有关系。

背景说明:我们的 Spark 集群是运行在 podman 容器里的,而且是在非 root 用户下运行。

经过在互联网上搜索,发现这个主机名是容器分配给内部进程用来连接容器所在主机自身的。再进一步查看 podman 参考文档,按照里面的说法,仅当容器运行网络模式为 slirp4netns,即带上参数 "--network=slirp4netns" 时,才会有 host.containers.internal 这个主机名。

但我运行容器时带的参数是 "--network=host" 啊。

再仔细看文档才知道,slirp4netns 模式是非 root 运行容器的默认模式。按照我遇到的实际情况,难道我给的 "--network=host" 参数并没有起作用?但是用 podman inspect xxx | grep NetworkMode 命令查看容器得到的结果是:

"NetworkMode": "host"

不懂,先把这个放到一边,那么如何访问 host.containers.internal 这个主机呢,有两种方式:

  • 参数改为 "--network=slirp4netns:allow_host_loopback=true"
  • 修改 /usr/share/containers/containers.conf,修改或添加配置 network_cmd_options 的值为 ["allow_host_loopback=true"]

在不修改 --network 参数的前提下,我用第二种方法试试。

修改配置文件然后重启各个 worker 容器,故障消失,Spark 任务能够顺利执行完成。但还需要观察一段时间。

以上就是Spark 集群执行任务失败的故障处理方法的详细内容,更多关于Spark 集群任务失败故障处理的资料请关注码农之家其它相关文章!


参考资料

相关文章

  • Spark网站日志过滤分析实例讲解

    发布:2023-04-19

    这篇文章主要介绍了Spark网站日志过滤分析实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧


  • PyCharm搭建Spark开发环境实现第一个pyspark程序

    PyCharm搭建Spark开发环境实现第一个pyspark程序

    发布:2022-06-17

    给网友朋友们带来一篇关于PyCharm的教程,这篇文章主要介绍了PyCharm搭建Spark开发环境实现第一个pyspark程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习


  • SparkSQL开窗函数分析使用示例

    发布:2023-04-23

    开窗函数的引入是为了既显示聚集前的数据,又显示聚集后的数据。即在每一行的最后一列添加聚合函数的结果。开窗用于为行定义一个窗口,它对一组值进行操作,不需要使用 GROUP BY 子句对数据进行分组,能够在同一行中同时返回基础行的列和聚合列


  • 介绍idea远程调试spark的方法步骤

    发布:2020-01-28

    今天小编就为大家分享一篇关于idea远程调试spark的步骤讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧


  • Java开发Spark应用程序自定义PipeLineStage详解

    发布:2023-04-19

    这篇文章主要为大家介绍了Java开发Spark应用程序自定义PipeLineStage详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • PySpark和RDD对象最新详解

    发布:2023-03-04

    Spark是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃至EB级别的海量数据,PySpark是由Spark官方开发的Python语言第三方库,本文重点介绍PySpark和RDD对象,感兴趣的朋友一起看看吧


  • Spark Streaming算子开发代码讲解

    发布:2019-08-05

    这篇文章主要介绍了Spark Streaming算子开发实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • Spark JDBC操作MySQL方式详细讲解

    发布:2023-04-19

    这篇文章主要介绍了Spark JDBC操作MySQL方式,Spark SQL可以通过JDBC从传统的关系型数据库中读写数据,读取数据后直接生成的是DataFrame,然后再加上借助于Spark SQL丰富的API来进行各种操作


网友讨论