Hi,

Good points. I have started making some suggestions to the Design doc as
referenced above.

My main concern with the current scheduling is the fact that there seems to
be one pod per node association with k8s application. The model works on
the basis of the "one-container-per-Pod" model
<https://kubernetes.io/docs/concepts/workloads/pods/> meaning that for
each node of the cluster you will have one node running the driver and each
remaining node running one executor each. I tested this using Google
Kubernetes cluster (GKE)  with dynamic adjustment of the number of nodes.
Now there is also the lead time for the driver to create the executors.
when the number of executors set to a higher number of the nodes
through --conf spark.executor.instances=$NEXEC,


For example I am testing this in Google Kubernetes Cluster with three nodes
and no of executors set at 9


NAME                                         READY   STATUS
RESTARTS   AGE

randomdatabigquery-fbfaa97d7019ffa7-exec-1   0/1     ContainerCreating   0
        22s

randomdatabigquery-fbfaa97d7019ffa7-exec-2   0/1     ContainerCreating   0
        22s

randomdatabigquery-fbfaa97d7019ffa7-exec-3   1/1     Running             0
        22s

randomdatabigquery-fbfaa97d7019ffa7-exec-4   0/1     ContainerCreating   0
        22s

randomdatabigquery-fbfaa97d7019ffa7-exec-5   0/1     ContainerCreating   0
        21s

randomdatabigquery-fbfaa97d7019ffa7-exec-6   1/1     Running             0
        20s

randomdatabigquery-fbfaa97d7019ffa7-exec-7   0/1     ContainerCreating   0
        20s

randomdatabigquery-fbfaa97d7019ffa7-exec-8   0/1     ContainerCreating   0
        20s

randomdatabigquery-fbfaa97d7019ffa7-exec-9   0/1     Pending             0
        20s

sparkbq-ad80717d701955ad-driver              1/1     Running             0
        66s

Some of these exectors are totally redundant but the driver still takes
time to create them which I believe is a waste of resources. This needs to
be avoided. Secondally, the current scheduler is based on Spark standalone
mode, which I think is less strict than the Yarn mode. I am not sure how
much volcano contribution is to make this better. However, we need to
improve the current scheduling regardless.


HTH



   view my Linkedin profile
<https://www.linkedin.com/in/mich-talebzadeh-ph-d-5205b2/>



*Disclaimer:* Use it at your own risk. Any and all responsibility for any
loss, damage or destruction of data or any other property which may arise
from relying on this email's technical content is explicitly disclaimed.
The author will in no case be liable for any monetary damages arising from
such loss, damage or destruction.




On Tue, 30 Nov 2021 at 08:47, Yikun Jiang <yikunk...@gmail.com> wrote:

> Hey everyone,
>
> I'd like to start a discussion on "Support Volcano/Alternative Schedulers
> Proposal".
>
> This SPIP is proposed to make spark k8s schedulers provide more YARN like
> features (such as queues and minimum resources before scheduling jobs) that
> many folks want on Kubernetes.
>
> The goal of this SPIP is to improve current spark k8s scheduler
> implementations, add the ability of batch scheduling and support volcano as
> one of implementations.
>
> Design doc:
> https://docs.google.com/document/d/1xgQGRpaHQX6-QH_J9YV2C2Dh6RpXefUpLM7KGkzL6Fg
> JIRA: https://issues.apache.org/jira/browse/SPARK-36057
> Part of PRs:
> Ability to create resources https://github.com/apache/spark/pull/34599
> Add PodGroupFeatureStep: https://github.com/apache/spark/pull/34456
>
> Regards,
> Yikun
>

Reply via email to