Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark /work/app-xxxxxxx/{0,1,2,…}中spark worker目录的用途和定期清理_Apache Spark_Spark Streaming - Fatal编程技术网

Apache spark /work/app-xxxxxxx/{0,1,2,…}中spark worker目录的用途和定期清理

Apache spark /work/app-xxxxxxx/{0,1,2,…}中spark worker目录的用途和定期清理,apache-spark,spark-streaming,Apache Spark,Spark Streaming,我正在运行Spark 3.4长期运行的结构化流媒体作业。每当作业开始时,都会在工作目录中为作业创建一个应用程序目录,格式为app-xxxxxxxxx。但是,在该目录中,会创建其他目录,第一个目录名为0,第二个目录名为1,依此类推 我的第一个问题是,为什么要创建这些目录?在结构化流媒体作业过程中,微批处理可能会被触发20次,但在app-xxxxxxxxx目录下仅创建了4个子目录,这是因为这些子目录的创建与微批处理的执行不对应。所以,我不知道他们为什么会被创造出来 我的第二个相关问题是,如何配置Sp

我正在运行Spark 3.4长期运行的结构化流媒体作业。每当作业开始时,都会在工作目录中为作业创建一个应用程序目录,格式为app-xxxxxxxxx。但是,在该目录中,会创建其他目录,第一个目录名为0,第二个目录名为1,依此类推

我的第一个问题是,为什么要创建这些目录?在结构化流媒体作业过程中,微批处理可能会被触发20次,但在app-xxxxxxxxx目录下仅创建了4个子目录,这是因为这些子目录的创建与微批处理的执行不对应。所以,我不知道他们为什么会被创造出来

我的第二个相关问题是,如何配置Spark在一定时间后删除这些文件夹?每个文件都包含application.jar、stderr和stdout文件,因此随着时间的推移,它们会占用大量空间。我的理解是设置
spark.worker.cleanup.enabled=true
仅对停止的应用程序启用清理。然而,在我的例子中,我有一个长时间运行的应用程序,我想为其启用清理功能。

您正在谈论工作目录和配置spark.worker,因此我的假设是您正在spark的独立模式下运行流媒体作业(不使用诸如swarn之类的群集管理器,因为那里的情况完全不同)

根据文档,工作目录描述为:运行应用程序的目录,其中包括日志和临时空间(默认:SPARK_HOME/work)。

这里的暂存空间意味着它“包括存储在磁盘上的映射输出文件和RDD。它应该位于系统中快速的本地磁盘上。它也可以是不同磁盘上多个目录的逗号分隔列表。”

在工作文件夹中,您将为每个应用程序找到.jar库,这样执行者就可以访问这些库。此外,它还包含一些基于处理逻辑和实际数据(而不是基于处理触发器的数量)的临时数据。对于同一应用程序的不同作业/阶段或运行,子文件夹0、1是增量的。(坦率地说,我对这些子文件夹不太了解。)

此文件夹的清洁可通过以下三种配置进行调整,即
SPARK\u WORKER\u OPTS
,如下所述:

spark.worker.cleanup.enabled-默认值:
false
: 启用工作程序/应用程序目录的定期清理。请注意,这只影响独立模式,因为纱线的工作方式不同。只清理已停止应用程序的目录。如果spark.shuffle.service.db.enabled为“true”,则应启用此选项

spark.worker.cleanup.interval-默认值:
1800
(30分钟): 控制工作进程清除本地计算机上旧应用程序工作目录的时间间隔(秒)

spark.worker.cleanup.appDataTtl-默认值:
604800
(7天,7*24*3600): 在每个辅助进程上保留应用程序工作目录的秒数。这是一个生存的时期,应该取决于可用磁盘空间的大小。应用程序日志和JAR下载到每个应用程序工作目录。随着时间的推移,工作目录会很快填满磁盘空间,特别是在您非常频繁地运行作业的情况下


感谢您的回复,但这些SPARK_WORKER_选项仅配置清理应用程序-*工作/中的文件夹,而不是子文件夹0、1、2。。。为了一份跑步的工作。我需要清理这些子文件夹,因为我正在运行一个长时间运行的结构化流媒体应用程序,并且子文件夹是不断创建的,每次都在大的.jar上复制