Spark进程运行无磁盘错误异常

问题描述 投票:0回答:1

我在 Google Cloud 中启动了一个 DataProc 集群。

我正在其中执行 Spark 应用程序。该应用程序的作用类似于网络服务器。它监听请求;然后触发 Spark 作业(又名:Spark 操作)并返回结果。 该集群仅专用于我的 Spark 应用程序;其中没有其他作业正在运行。 集群中的每个节点都连接有 375GB 硬盘。

当 Spark 应用程序满足请求时,它分叉的 Spark 作业(操作)会创建大量随机数据。

我的预期是:由于 Spark 应用程序继续运行,它会在某个时刻用洗牌数据耗尽磁盘空间(因为它不断收到请求)。 我什至在 Spark UI 中监控到聚合的 shuffle 数据正在增长,甚至已经超过了 375GB;但该作业正在满足新请求,而不会引发任何磁盘错误异常。

在应用程序中,我也启用了外部随机播放服务。

所以很明显应用程序正在删除随机数据;但不确定哪个 Spark 进程正在删除随机数据。

是executor进程本身还是每个节点上运行的外部shuffle服务进程?还是驱动程序进程?

有人可以照亮吗。

谢谢

apache-spark google-cloud-dataproc
1个回答
0
投票

Spark 有一项用于应用程序范围清理的服务 - ContextCleaner。默认情况下它是启用的。此外,就您而言,我会尝试将

spark.cleaner.referenceTracking.blocking.shuffle
设置为
true
,以确保完全删除随机播放文件。

请参阅页面Spark 配置了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.