You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Oz Ben-Ami (JIRA)" <ji...@apache.org> on 2018/01/15 17:57:00 UTC

[jira] [Updated] (SPARK-23082) Allow separate node selectors for driver and executors in Kubernetes

     [ https://issues.apache.org/jira/browse/SPARK-23082?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Oz Ben-Ami updated SPARK-23082:
-------------------------------
    Description: 
In YARN, we can use spark.yarn.am.nodeLabelExpression to submit the Spark driver to a different set of nodes from its executors. In Kubernetes, we can specify spark.kubernetes.node.selector.[labelKey], but we can't use separate options for the driver and executors.

This would be useful for the particular use case where executors can go on more ephemeral nodes (eg, with cluster autoscaling, or preemptible/spot instances), but the driver should use a more persistent machine.

The required change would be minimal, essentially just using different config keys in [https://github.com/apache/spark/blob/master/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/submit/steps/BasicDriverConfigurationStep.scala#L90] and [https://github.com/apache/spark/blob/0b2eefb674151a0af64806728b38d9410da552ec/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/scheduler/cluster/k8s/ExecutorPodFactory.scala#L73] instead of KUBERNETES_NODE_SELECTOR_PREFIX for both.

  was:
In YARN, we can use spark.yarn.am.nodeLabelExpression to submit the Spark driver to a different set of nodes from its executors. In Kubernetes, we can specify spark.kubernetes.node.selector.[labelKey], but we can't use separate options for the driver and executors. This would be useful for the particular use case where executors can go on more ephemeral nodes (eg, with cluster autoscaling, or preemptible/spot instances), but the driver should use a more persistent machine.
The required change would be minimal, essentially just using different config keys in [https://github.com/apache/spark/blob/master/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/submit/steps/BasicDriverConfigurationStep.scala#L90] and [https://github.com/apache/spark/blob/0b2eefb674151a0af64806728b38d9410da552ec/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/scheduler/cluster/k8s/ExecutorPodFactory.scala#L73] instead of KUBERNETES_NODE_SELECTOR_PREFIX for both.


> Allow separate node selectors for driver and executors in Kubernetes
> --------------------------------------------------------------------
>
>                 Key: SPARK-23082
>                 URL: https://issues.apache.org/jira/browse/SPARK-23082
>             Project: Spark
>          Issue Type: Improvement
>          Components: Kubernetes, Spark Submit
>    Affects Versions: 2.2.0, 2.3.0
>            Reporter: Oz Ben-Ami
>            Priority: Minor
>
> In YARN, we can use spark.yarn.am.nodeLabelExpression to submit the Spark driver to a different set of nodes from its executors. In Kubernetes, we can specify spark.kubernetes.node.selector.[labelKey], but we can't use separate options for the driver and executors.
> This would be useful for the particular use case where executors can go on more ephemeral nodes (eg, with cluster autoscaling, or preemptible/spot instances), but the driver should use a more persistent machine.
> The required change would be minimal, essentially just using different config keys in [https://github.com/apache/spark/blob/master/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/submit/steps/BasicDriverConfigurationStep.scala#L90] and [https://github.com/apache/spark/blob/0b2eefb674151a0af64806728b38d9410da552ec/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/scheduler/cluster/k8s/ExecutorPodFactory.scala#L73] instead of KUBERNETES_NODE_SELECTOR_PREFIX for both.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org