Spark集群任务失败,如何有效排查及修复故障?
- 内容介绍
- 文章标签
- 相关推荐
本文共计728个文字,预计阅读时间需要3分钟。
引言:近期(2023-02-22)发现公司Spark集群上出现一些任务执行时间过长,最终失败的情况。具体表现包括:大量执行失败的Task,以及最终失败的任务在Spark Master管理界面上也可见。
引言
昨天(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 这个主机名。
本文共计728个文字,预计阅读时间需要3分钟。
引言:近期(2023-02-22)发现公司Spark集群上出现一些任务执行时间过长,最终失败的情况。具体表现包括:大量执行失败的Task,以及最终失败的任务在Spark Master管理界面上也可见。
引言
昨天(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 这个主机名。

