[英]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.