Yikun commented on a change in pull request #35504:
URL: https://github.com/apache/spark/pull/35504#discussion_r829192039
##########
File path:
resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicExecutorFeatureStep.scala
##########
@@ -59,11 +59,16 @@ private[spark] class BasicExecutorFeatureStep(
private val isDefaultProfile = resourceProfile.id ==
ResourceProfile.DEFAULT_RESOURCE_PROFILE_ID
private val isPythonApp = kubernetesConf.get(APP_RESOURCE_TYPE) ==
Some(APP_RESOURCE_TYPE_PYTHON)
private val disableConfigMap =
kubernetesConf.get(KUBERNETES_EXECUTOR_DISABLE_CONFIGMAP)
+ private val memoryOverheadFactor = if
(kubernetesConf.contains(EXECUTOR_MEMORY_OVERHEAD_FACTOR)) {
+ kubernetesConf.get(EXECUTOR_MEMORY_OVERHEAD_FACTOR)
+ } else {
+ kubernetesConf.get(MEMORY_OVERHEAD_FACTOR)
+ }
Review comment:
The reason should be in here, before
kubernetesConf.get(MEMORY_OVERHEAD_FACTOR) was used as default factor, it's
`0.4` according my real debug watch on IT `Run PySpark on simple pi.py example`.
But current EXECUTOR_MEMORY_OVERHEAD_FACTOR has more priority than so
MEMORY_OVERHEAD_FACTOR is be overrited. (so 0.1 by default). So that the
default behavior changed.
But I haven't found why `kubernetesConf.get(MEMORY_OVERHEAD_FACTOR)` is
`0.4` yet, I couldn't find a code in IT to set this explictly.
cc @Kimahriman @tgravescs
##########
File path:
resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicExecutorFeatureStep.scala
##########
@@ -59,11 +59,16 @@ private[spark] class BasicExecutorFeatureStep(
private val isDefaultProfile = resourceProfile.id ==
ResourceProfile.DEFAULT_RESOURCE_PROFILE_ID
private val isPythonApp = kubernetesConf.get(APP_RESOURCE_TYPE) ==
Some(APP_RESOURCE_TYPE_PYTHON)
private val disableConfigMap =
kubernetesConf.get(KUBERNETES_EXECUTOR_DISABLE_CONFIGMAP)
+ private val memoryOverheadFactor = if
(kubernetesConf.contains(EXECUTOR_MEMORY_OVERHEAD_FACTOR)) {
+ kubernetesConf.get(EXECUTOR_MEMORY_OVERHEAD_FACTOR)
+ } else {
+ kubernetesConf.get(MEMORY_OVERHEAD_FACTOR)
+ }
Review comment:
https://github.com/apache/spark/blob/cd86df881c9570d32f6522ee163b884fda00a530/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicDriverFeatureStep.scala#L62-L63
I found it, it is propagated to executors from driver, how?
##########
File path:
resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicExecutorFeatureStep.scala
##########
@@ -59,11 +59,16 @@ private[spark] class BasicExecutorFeatureStep(
private val isDefaultProfile = resourceProfile.id ==
ResourceProfile.DEFAULT_RESOURCE_PROFILE_ID
private val isPythonApp = kubernetesConf.get(APP_RESOURCE_TYPE) ==
Some(APP_RESOURCE_TYPE_PYTHON)
private val disableConfigMap =
kubernetesConf.get(KUBERNETES_EXECUTOR_DISABLE_CONFIGMAP)
+ private val memoryOverheadFactor = if
(kubernetesConf.contains(EXECUTOR_MEMORY_OVERHEAD_FACTOR)) {
+ kubernetesConf.get(EXECUTOR_MEMORY_OVERHEAD_FACTOR)
+ } else {
+ kubernetesConf.get(MEMORY_OVERHEAD_FACTOR)
+ }
Review comment:
https://github.com/apache/spark/blob/cd86df881c9570d32f6522ee163b884fda00a530/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicDriverFeatureStep.scala#L62-L63
I found it, it is propagated to executors from driver
##########
File path:
resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicExecutorFeatureStep.scala
##########
@@ -59,11 +59,16 @@ private[spark] class BasicExecutorFeatureStep(
private val isDefaultProfile = resourceProfile.id ==
ResourceProfile.DEFAULT_RESOURCE_PROFILE_ID
private val isPythonApp = kubernetesConf.get(APP_RESOURCE_TYPE) ==
Some(APP_RESOURCE_TYPE_PYTHON)
private val disableConfigMap =
kubernetesConf.get(KUBERNETES_EXECUTOR_DISABLE_CONFIGMAP)
+ private val memoryOverheadFactor = if
(kubernetesConf.contains(EXECUTOR_MEMORY_OVERHEAD_FACTOR)) {
+ kubernetesConf.get(EXECUTOR_MEMORY_OVERHEAD_FACTOR)
+ } else {
+ kubernetesConf.get(MEMORY_OVERHEAD_FACTOR)
+ }
Review comment:
might related this:
https://github.com/apache/spark/commit/6f27027d96ada29d8bb1d626f2cc7c856df3d597
, should be set some localProperties in sc.
##########
File path:
resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicExecutorFeatureStep.scala
##########
@@ -59,11 +59,16 @@ private[spark] class BasicExecutorFeatureStep(
private val isDefaultProfile = resourceProfile.id ==
ResourceProfile.DEFAULT_RESOURCE_PROFILE_ID
private val isPythonApp = kubernetesConf.get(APP_RESOURCE_TYPE) ==
Some(APP_RESOURCE_TYPE_PYTHON)
private val disableConfigMap =
kubernetesConf.get(KUBERNETES_EXECUTOR_DISABLE_CONFIGMAP)
+ private val memoryOverheadFactor = if
(kubernetesConf.contains(EXECUTOR_MEMORY_OVERHEAD_FACTOR)) {
+ kubernetesConf.get(EXECUTOR_MEMORY_OVERHEAD_FACTOR)
+ } else {
+ kubernetesConf.get(MEMORY_OVERHEAD_FACTOR)
+ }
Review comment:
might related this:
https://github.com/apache/spark/commit/3404a73f4cf7be37e574026d08ad5cf82cfac871
https://github.com/apache/spark/commit/6f27027d96ada29d8bb1d626f2cc7c856df3d597
, should be set some localProperties in sc.
##########
File path:
resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicExecutorFeatureStep.scala
##########
@@ -59,11 +59,16 @@ private[spark] class BasicExecutorFeatureStep(
private val isDefaultProfile = resourceProfile.id ==
ResourceProfile.DEFAULT_RESOURCE_PROFILE_ID
private val isPythonApp = kubernetesConf.get(APP_RESOURCE_TYPE) ==
Some(APP_RESOURCE_TYPE_PYTHON)
private val disableConfigMap =
kubernetesConf.get(KUBERNETES_EXECUTOR_DISABLE_CONFIGMAP)
+ private val memoryOverheadFactor = if
(kubernetesConf.contains(EXECUTOR_MEMORY_OVERHEAD_FACTOR)) {
+ kubernetesConf.get(EXECUTOR_MEMORY_OVERHEAD_FACTOR)
+ } else {
+ kubernetesConf.get(MEMORY_OVERHEAD_FACTOR)
+ }
Review comment:
Yep, I think so.
##########
File path:
resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicExecutorFeatureStep.scala
##########
@@ -59,11 +59,16 @@ private[spark] class BasicExecutorFeatureStep(
private val isDefaultProfile = resourceProfile.id ==
ResourceProfile.DEFAULT_RESOURCE_PROFILE_ID
private val isPythonApp = kubernetesConf.get(APP_RESOURCE_TYPE) ==
Some(APP_RESOURCE_TYPE_PYTHON)
private val disableConfigMap =
kubernetesConf.get(KUBERNETES_EXECUTOR_DISABLE_CONFIGMAP)
+ private val memoryOverheadFactor = if
(kubernetesConf.contains(EXECUTOR_MEMORY_OVERHEAD_FACTOR)) {
+ kubernetesConf.get(EXECUTOR_MEMORY_OVERHEAD_FACTOR)
+ } else {
+ kubernetesConf.get(MEMORY_OVERHEAD_FACTOR)
+ }
Review comment:
~might related this:
https://github.com/apache/spark/commit/3404a73f4cf7be37e574026d08ad5cf82cfac871
https://github.com/apache/spark/commit/6f27027d96ada29d8bb1d626f2cc7c856df3d597
, should be set some localProperties in sc.~
##########
File path:
resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/features/BasicExecutorFeatureStep.scala
##########
@@ -59,11 +59,16 @@ private[spark] class BasicExecutorFeatureStep(
private val isDefaultProfile = resourceProfile.id ==
ResourceProfile.DEFAULT_RESOURCE_PROFILE_ID
private val isPythonApp = kubernetesConf.get(APP_RESOURCE_TYPE) ==
Some(APP_RESOURCE_TYPE_PYTHON)
private val disableConfigMap =
kubernetesConf.get(KUBERNETES_EXECUTOR_DISABLE_CONFIGMAP)
+ private val memoryOverheadFactor = if
(kubernetesConf.contains(EXECUTOR_MEMORY_OVERHEAD_FACTOR)) {
+ kubernetesConf.get(EXECUTOR_MEMORY_OVERHEAD_FACTOR)
+ } else {
+ kubernetesConf.get(MEMORY_OVERHEAD_FACTOR)
+ }
Review comment:
Yep, I think so.
https://github.com/apache/spark/blob/cd86df881c9570d32f6522ee163b884fda00a530/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/submit/KubernetesClientUtils.scala#L72
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]