代码之家  ›  专栏  ›  技术社区  ›  kz28

在Kubernetes上启动Spark应用程序时发生了什么

  •  3
  • kz28  · 技术社区  · 7 年前

    Running Spark on Kubernetes . 我想知道在K8s上启动Spark作业时Kubernetes控制器/调度器和Spark运行时之间的交互的更多细节。 特别是,假设我们通过以下方式启动Spark应用程序:

    bin/spark-submit \
    --master k8s://https://<k8s-apiserver-host>:<k8s-apiserver-port> \
    --deploy-mode cluster \
    --name spark-pi \
    --class org.apache.spark.examples.SparkPi \
    --conf spark.executor.instances=5 \
    --..............
    

    我的问题是:由于Spark应用程序启动时集群资源不可用,K8s可能无法立即分配5个执行器(或称为容器/POD)。Spark应用程序走哪条路?(1) 当至少分配了一个执行器时,Spark会尽快开始运行任务。(2) Spark不会启动任何任务,直到5个执行器都分配完毕。

    如果你知道hadoopyarn,如果你能在hadoopyarn上运行Spark app(DynamicAllocation Disabled)的场景中回答这个问题并指出区别,那就太好了。

    0 回复  |  直到 5 年前
    推荐文章