簡體   English   中英

k8s 上的 Spark - emptyDir 未安裝到目錄

[英]Spark on k8s - emptyDir not mounted to directory

我在 Kubernetes 上啟動了一些具有相當大數據量的 Spark 作業,但作業失敗了,因為 /var/data/spark-xxx 目錄中沒有足夠的空間。

正如 Spark 文檔在https://github.com/apache/spark/blob/master/docs/running-on-kubernetes.md 上所說

Spark 使用臨時暫存空間在 shuffle 和其他操作期間將數據溢出到磁盤。 當使用 Kubernetes 作為資源管理器時,將為 SPARK_LOCAL_DIRS 中列出的每個目錄安裝一個 emptyDir 卷來創建 pod。 如果未明確指定目錄,則會創建並適當配置默認目錄

似乎/var/data/spark-xx目錄是 emptyDir 的默認目錄。 因此,我嘗試將該 emptyDir 映射到已經映射到 Driver 和 Executors Pod 的 Volume(具有更大的空間)。

我將它映射到屬性文件中,我可以看到它安裝在 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 支持在 shuffle 和其他操作期間使用卷來溢出數據。 要將卷用作本地存儲,卷的名稱應以spark-local-dir-開頭,例如:

--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

參考:

您可以將/var/data掛載到Persistent Volume,然后此路徑下的所有emptyDir掛載將具有足夠的大小。 下面的示例pod yaml可以正常工作:

apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - image: nginx
    name: test-container
    volumeMounts:
    - mountPath: /test-pd
      name: test-volume
    - mountPath: /test-pd/cache
      name: cache-volume
  volumes:
  - name: test-volume
    # This GCE PD must already exist.
    gcePersistentDisk:
      pdName: my-data-disk
      fsType: ext4
  - name: cache-volume
    emptyDir: {}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM