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

 更新时间:2023年02月23日 14:33:14   作者:avatar 捏造的信仰  
这篇文章主要为大家介绍了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 集群任务失败故障处理的资料请关注脚本之家其它相关文章!

相关文章

  • maven项目引用外部jar包的方法

    maven项目引用外部jar包的方法

    本篇文章主要介绍了maven项目引用外部jar的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Java线程池ForkJoinPool实例解析

    Java线程池ForkJoinPool实例解析

    这篇文章主要介绍了Java线程池ForkJoinPool实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • java 类加载与自定义类加载器详解

    java 类加载与自定义类加载器详解

    本文主要介绍了java 类加载与自定义类加载器。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • idea搭建ssh框架的超详细教程

    idea搭建ssh框架的超详细教程

    这篇文章主要介绍了idea搭建ssh框架的超详细教程,本文通过图文实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • SpringBoot+Redis+Lua防止IP重复防刷攻击的方法

    SpringBoot+Redis+Lua防止IP重复防刷攻击的方法

    本文主要介绍了SpringBoot+Redis+Lua防止IP重复防刷攻击的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Java编写迷宫小游戏

    Java编写迷宫小游戏

    最近经常在机房看同学在玩一个走迷宫的游戏,比较有趣,自己也用java写一个实现随机生成迷宫的算法,其实就是一个图的深度优先遍历算法.
    2016-05-05
  • Java反射设置/获取对象属性值三种方式

    Java反射设置/获取对象属性值三种方式

    这篇文章主要给大家介绍了关于Java反射设置/获取对象属性值的三种方式,反射机制的用途非常多,比如获取方法,属性名和属性值等,甚至可以获取标签等标签属性,需要的朋友可以参考下
    2023-11-11
  • Spring Cloud Gateway服务网关限流问题及解决

    Spring Cloud Gateway服务网关限流问题及解决

    这篇文章主要介绍了Spring Cloud Gateway服务网关限流问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 关于java关键字this和super的区别和理解

    关于java关键字this和super的区别和理解

    这篇文章主要给大家介绍了关于java关键字this和super的区别和理解的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • SpringBoot中YAML语法及几个注意点说明

    SpringBoot中YAML语法及几个注意点说明

    这篇文章主要介绍了SpringBoot中YAML语法及几个注意点说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02

最新评论