kubernetes上的Spark:当作业失败时,有可能保留崩溃的吊舱吗?

dldeef67  于 2021-05-29  发布在  Spark
关注(0)|答案(2)|浏览(432)

我有一个奇怪的问题,在kubernetes上运行的spark作业失败了,在有大量洗牌的作业中,出现了大量“丢失洗牌x的输出位置”的情况。增加执行器内存没有帮助。在本地[*]模式下,在kubernetes集群的一个节点上运行相同的作业运行得很好,但是我怀疑这与kubernetes或底层docker有关。当一个执行者死后,pod会立即被删除,所以我无法找出失败的原因。有没有一个选项,让失败的豆荚周围,我可以查看他们的日志?

rqqzpn5f

rqqzpn5f1#

执行器在任何失败时都会被默认删除,除非您在k8s代码上自定义spark或使用一些高级k8s工具,否则您将无法对其执行任何操作。您可以做的(最简单的方法可能是开始)是配置一些外部日志收集器,例如grafana-loki,只需单击一下就可以部署到任何k8s集群,或者一些elk堆栈组件。这些将帮助您保存日志,即使删除了pod。

2w3kk1z5

2w3kk1z52#

您可以按如下方式查看以前终止的pod的日志:

kubectl logs -p <terminated pod name>

同时使用 spec.ttlSecondsAfterFinished 这里提到的工作领域

相关问题