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

Yanzhe Xu updated SPARK-41496:
------------------------------
    Description: 
When defining multiple documents in the pod template file:
{code:java}
apiVersion: v1
kind: Pod
...# the first document to create a PVC
...
--- # use tripple-dash to split multiple documents in one yaml file
apiVersion: v1
kind: Pod
...
... # the second document to create the Spark pod.
{code}
 

Then set the podTemplate file in spark-submit command:

 
{code:java}
--conf 
spark.kubernetes.executor.podTemplateFile=s3a://***/executor_pod_template.yaml 
\{code}
 

Then Spark throws:
{code:java}
22/12/09 17:17:41 ERROR KubernetesUtils: Encountered exception while attempting 
to load initial pod spec from file
expected a single document in the stream
in 'reader', line 1, column 1:
apiVersion: v1
^
but found another document
in 'reader', line 27, column 1:
---
^
at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:125)
at 
org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:150)
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:490)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:429)
at 
io.fabric8.kubernetes.client.utils.Serialization.unmarshalYaml(Serialization.java:304)
at 
io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:245)
at 
io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:201)
at 
io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:189)
at 
io.fabric8.kubernetes.client.dsl.base.OperationSupport.unmarshal(OperationSupport.java:656)
at 
io.fabric8.kubernetes.client.dsl.base.BaseOperation.load(BaseOperation.java:315)
at 
io.fabric8.kubernetes.client.dsl.base.BaseOperation.load(BaseOperation.java:330)
at 
io.fabric8.kubernetes.client.dsl.base.BaseOperation.load(BaseOperation.java:86)
at 
org.apache.spark.deploy.k8s.KubernetesUtils$.loadPodFromTemplate(KubernetesUtils.scala:105)
{code}
 

The entrypoint code: 
[https://github.com/apache/spark/blame/master/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/KubernetesUtils.scala#L105]
 

 

  was:
When defining multiple documents in the pod template file:
{code:java}
apiVersion: v1
kind: Pod
...# the first document to create a PVC
...
— # use tripple-dash to split multiple documents in one yaml file
apiVersion: v1
kind: Pod
...
... # the second document to create the Spark pod.
{code}
 

Then set the podTemplate file in spark-submit command:

 
{code:java}
--conf 
spark.kubernetes.executor.podTemplateFile=s3a://***/executor_pod_template.yaml 
\{code}
 

Then Spark throws:
{code:java}
22/12/09 17:17:41 ERROR KubernetesUtils: Encountered exception while attempting 
to load initial pod spec from file
expected a single document in the stream
in 'reader', line 1, column 1:
apiVersion: v1
^
but found another document
in 'reader', line 27, column 1:
---
^
at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:125)
at 
org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:150)
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:490)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:429)
at 
io.fabric8.kubernetes.client.utils.Serialization.unmarshalYaml(Serialization.java:304)
at 
io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:245)
at 
io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:201)
at 
io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:189)
at 
io.fabric8.kubernetes.client.dsl.base.OperationSupport.unmarshal(OperationSupport.java:656)
at 
io.fabric8.kubernetes.client.dsl.base.BaseOperation.load(BaseOperation.java:315)
at 
io.fabric8.kubernetes.client.dsl.base.BaseOperation.load(BaseOperation.java:330)
at 
io.fabric8.kubernetes.client.dsl.base.BaseOperation.load(BaseOperation.java:86)
at 
org.apache.spark.deploy.k8s.KubernetesUtils$.loadPodFromTemplate(KubernetesUtils.scala:105)
{code}
 

The entrypoint code: 
[https://github.com/apache/spark/blame/master/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/KubernetesUtils.scala#L105]
 

 


> Spark doesn't support multiple documents in one pod template file
> -----------------------------------------------------------------
>
>                 Key: SPARK-41496
>                 URL: https://issues.apache.org/jira/browse/SPARK-41496
>             Project: Spark
>          Issue Type: Bug
>          Components: Kubernetes
>    Affects Versions: 3.2.2
>            Reporter: Yanzhe Xu
>            Priority: Major
>
> When defining multiple documents in the pod template file:
> {code:java}
> apiVersion: v1
> kind: Pod
> ...# the first document to create a PVC
> ...
> --- # use tripple-dash to split multiple documents in one yaml file
> apiVersion: v1
> kind: Pod
> ...
> ... # the second document to create the Spark pod.
> {code}
>  
> Then set the podTemplate file in spark-submit command:
>  
> {code:java}
> --conf 
> spark.kubernetes.executor.podTemplateFile=s3a://***/executor_pod_template.yaml
>  \{code}
>  
> Then Spark throws:
> {code:java}
> 22/12/09 17:17:41 ERROR KubernetesUtils: Encountered exception while 
> attempting to load initial pod spec from file
> expected a single document in the stream
> in 'reader', line 1, column 1:
> apiVersion: v1
> ^
> but found another document
> in 'reader', line 27, column 1:
> ---
> ^
> at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:125)
> at 
> org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:150)
> at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:490)
> at org.yaml.snakeyaml.Yaml.load(Yaml.java:429)
> at 
> io.fabric8.kubernetes.client.utils.Serialization.unmarshalYaml(Serialization.java:304)
> at 
> io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:245)
> at 
> io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:201)
> at 
> io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:189)
> at 
> io.fabric8.kubernetes.client.dsl.base.OperationSupport.unmarshal(OperationSupport.java:656)
> at 
> io.fabric8.kubernetes.client.dsl.base.BaseOperation.load(BaseOperation.java:315)
> at 
> io.fabric8.kubernetes.client.dsl.base.BaseOperation.load(BaseOperation.java:330)
> at 
> io.fabric8.kubernetes.client.dsl.base.BaseOperation.load(BaseOperation.java:86)
> at 
> org.apache.spark.deploy.k8s.KubernetesUtils$.loadPodFromTemplate(KubernetesUtils.scala:105)
> {code}
>  
> The entrypoint code: 
> [https://github.com/apache/spark/blame/master/resource-managers/kubernetes/core/src/main/scala/org/apache/spark/deploy/k8s/KubernetesUtils.scala#L105]
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to