簡體   English   中英

請求和分配的內存之間的區別 - Spark on Kubernetes

[英]Difference between requested and allocated memory - Spark on Kubernetes

我正在使用 spark-submit 命令在 Kubernetes 集群中運行 Spark 作業,如下所示,

bin/spark-submit \
    --master k8s://https://api-server-host:443 \
    --deploy-mode cluster \
    --name spark-job-name \
    --conf spark.kubernetes.namespace=spark \
    --conf spark.kubernetes.container.image=docker-repo/pyspark:55 \
    --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark-submit \
    --conf spark.kubernetes.pyspark.pythonVersion=3 \
    --conf spark.executor.memory=4G \
    --files local:///mnt/conf.json \
    local:///mnt/ingest.py

當我檢查 executor pod 的請求和限制時,它顯示如下。 為 pod 分配了將近 1700 MB 的額外空間。

Limits:
  memory:  5734Mi
Requests:
  cpu:     4
  memory:  5734Mi

這是為什么?

除了@CptDolphin 的回答之外,請注意 Spark始終會分配spark.executor.memoryOverhead額外內存(最多為spark.executor.memory的 10% 或 384MB,除非明確配置),並且可能會分配額外的spark.executor.pyspark.memory如果您在配置中定義了它。

您定義 pod(作為單個系統)可以使用的內容是一回事,您定義 spark 或 java 或在該系統(pod)內運行的任何其他應用程序可以使用的內容是另一回事; 將其視為具有限制的普通計算機,然后將其視為具有自身限制的應用程序。

暫無
暫無

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

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