【问题标题】:How to run spark on kubernetes with limited resources for each namespace如何在每个命名空间的资源有限的 kubernetes 上运行 spark
【发布时间】:2020-10-11 23:36:25
【问题描述】:

我目前使用 helm 在 k8s 中设置了 spark 独立集群。它有固定数量的工人(5 个工人)和一个主人。目前正在进行 spark-submit 如下

spark-submit --class LogParser.LogBundleConfigFetcher --conf spark.submit.deployMode=cluster --conf spark.network.timeout=300 --conf spark.scheduler.mode=FAIR --conf **spark.master=spark://sm-care-alice-staging:7077** --conf spark.executor.cores=5 --conf spark.executor.memory=20g --conf spark.dynamicAllocation.maxExecutors=3 --conf spark.driver.memory=16g --conf spark.dynamicAllocation.enabled=false --conf spark.cores.max=15 http://minio.platform.svc.cluster.local:9000/alice-care/staging/config/spark/aliceparser.jar

但它有一些限制,例如我们不能为 pyspark 使用集群模式-目前不支持独立集群上的 python 应用程序使用集群部署模式

所以,我想使用 k8s 作为集群管理器。但是我们有一个巨大的 k8s 集群,并且为每个项目分配了有限的资源(由命名空间分配)。使用 k8s 作为集群管理器会动态生成 pod,因此我们无法控制资源(我知道我们可以控制实例,但在多次 spark-submit 的情况下,我们必须将其限制为内核和内存的限制)。

spark-submit \
    --master k8s://https://$(k8s_ip):8443 \
    --deploy-mode cluster \
    --name spark-example \
    --conf spark.executor.instances=5 \
    --conf spark.kubernetes.container.image=pyspark-k8s-example:2.4.1 \
    --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
    --conf spark.kubernetes.pyspark.pythonVersion=3 \
    /usr/bin/run.py

我想知道我们如何控制 k8s 集群管理器来限制资源,即将核心限制为 100,而不管调用了多少次 spark-submit。

或者有没有其他方法可以在同一设置中以集群模式运行 pyspark?

【问题讨论】:

    标签: apache-spark kubernetes pyspark


    【解决方案1】:

    您可以使用compute resource quota 来限制在命名空间中运行的 pod 可以消耗多少 CPU 和内存。

    • limits.cpu :所有处于非终端状态的 pod,CPU 的总和 限制不能超过此值。
    • limits.memory :在所有 pod 中 非终端状态,内存限制的总和不能超过这个 价值。
    • requests.cpu :在所有处于非终端状态的 pod 中,总和 CPU 请求数不能超过此值。
    • requests.memory : 全部 处于非终端状态的 Pod,内存请求的总和不能 超过这个值。

    apiVersion: v1
    kind: ResourceQuota
    metadata:
      name: compute-resources
      namespace: spark-ns
    spec:
      hard:
        requests.cpu: "1"
        requests.memory: 1Gi
        limits.cpu: "2"
        limits.memory: 2Gi
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-24
      • 1970-01-01
      • 2018-03-24
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多