Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/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 k8s上的Spark-emptyDir未装入目录_Apache Spark_Kubernetes - Fatal编程技术网

Apache spark k8s上的Spark-emptyDir未装入目录

Apache spark k8s上的Spark-emptyDir未装入目录,apache-spark,kubernetes,Apache Spark,Kubernetes,我在Kubernetes上启动了一些Spark作业,其中包含大量数据,但由于/var/data/Spark xxx目录中没有足够的空间,作业失败 正如Spark文档中所述 Spark使用临时暂存空间将数据溢出到磁盘 洗牌和其他操作。当使用Kubernetes作为资源时 manager将创建吊舱,并为其装载emptyDir卷 SPARK\u LOCAL\u目录中列出的每个目录。如果没有目录 显式指定,然后创建默认目录并 适当配置 似乎/var/data/spark xx目录是emptyDir的默认

我在Kubernetes上启动了一些Spark作业,其中包含大量数据,但由于/var/data/Spark xxx目录中没有足够的空间,作业失败

正如Spark文档中所述

Spark使用临时暂存空间将数据溢出到磁盘 洗牌和其他操作。当使用Kubernetes作为资源时 manager将创建吊舱,并为其装载emptyDir卷 SPARK\u LOCAL\u目录中列出的每个目录。如果没有目录 显式指定,然后创建默认目录并 适当配置

似乎/var/data/spark xx目录是emptyDir的默认目录。因此,我尝试将emptyDir映射到卷(具有更大的空间),该卷已经映射到驱动程序和执行器吊舱

我在属性文件中映射了它,我可以看到它装载在shell中:

spark.kubernetes.driver.volumes.persistentVolumeClaim.checkvolume.mount.path=/checkpoint
spark.kubernetes.driver.volumes.persistentVolumeClaim.checkvolume.mount.readOnly=false
spark.kubernetes.driver.volumes.persistentVolumeClaim.checkvolume.options.claimName=sparkstorage
spark.kubernetes.executor.volumes.persistentVolumeClaim.checkvolume.mount.path=/checkpoint
spark.kubernetes.executor.volumes.persistentVolumeClaim.checkvolume.mount.readOnly=false
spark.kubernetes.executor.volumes.persistentVolumeClaim.checkvolume.options.claimName=sparkstorage

我想知道是否有可能以某种方式在我的永久性存储上挂载emptyDir,这样我就可以溢出更多数据并避免作业失败?

我发现spark 3.0已经考虑过这个问题并完成了该功能

Spark支持在洗牌和其他操作期间使用卷溢出数据。要将卷用作本地存储,卷的名称应以
spark local dir-
开头,例如:

--conf spark.kubernetes.driver.volumes.[VolumeType].spark local dir-[VolumeName].mount.path=
--conf spark.kubernetes.driver.volumes.[VolumeType].spark local dir-[VolumeName].mount.readOnly=false
参考:


欢迎来到SO。虽然链接可能会回答这个问题,但最好在此处添加合并的详细信息,这样即使链接将来断开,答案也会突出。@KarthickRamesh感谢您的反馈,我添加了更多详细信息,
--conf spark.kubernetes.driver.volumes.[VolumeType].spark-local-dir-[VolumeName].mount.path=<mount path>
--conf spark.kubernetes.driver.volumes.[VolumeType].spark-local-dir-[VolumeName].mount.readOnly=false