Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-31786

Exception on submitting Spark-Pi to Kubernetes 1.17.3

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 2.4.5, 3.0.0
    • Fix Version/s: 3.0.0
    • Component/s: Kubernetes
    • Labels:
      None
    • Target Version/s:

      Description

      Hi,
      I'm getting exception when submitting Spark-Pi app to Kubernetes cluster.

      Kubernetes version: 1.17.3
      JDK version: openjdk version "1.8.0_252"

      Exception:

       ./bin/spark-submit --master k8s://https://172.31.23.60:8443 --deploy-mode cluster --name spark-pi --conf spark.kubernetes.container.image=spark-py:2.4.5 --conf spark.kubernetes.executor.request.cores=0.1 --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark --conf spark.executor.instances=1 local:///opt/spark/examples/src/main/python/pi.py
      log4j:WARN No appenders could be found for logger (io.fabric8.kubernetes.client.Config).
      log4j:WARN Please initialize the log4j system properly.
      log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
      Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
      Exception in thread "main" io.fabric8.kubernetes.client.KubernetesClientException: Operation: [create]  for kind: [Pod]  with name: [null]  in namespace: [default]  failed.
              at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:64)
              at io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:72)
              at io.fabric8.kubernetes.client.dsl.base.BaseOperation.create(BaseOperation.java:337)
              at io.fabric8.kubernetes.client.dsl.base.BaseOperation.create(BaseOperation.java:330)
              at org.apache.spark.deploy.k8s.submit.Client$$anonfun$run$2.apply(KubernetesClientApplication.scala:141)
              at org.apache.spark.deploy.k8s.submit.Client$$anonfun$run$2.apply(KubernetesClientApplication.scala:140)
              at org.apache.spark.util.Utils$.tryWithResource(Utils.scala:2543)
              at org.apache.spark.deploy.k8s.submit.Client.run(KubernetesClientApplication.scala:140)
              at org.apache.spark.deploy.k8s.submit.KubernetesClientApplication$$anonfun$run$5.apply(KubernetesClientApplication.scala:250)
              at org.apache.spark.deploy.k8s.submit.KubernetesClientApplication$$anonfun$run$5.apply(KubernetesClientApplication.scala:241)
              at org.apache.spark.util.Utils$.tryWithResource(Utils.scala:2543)
              at org.apache.spark.deploy.k8s.submit.KubernetesClientApplication.run(KubernetesClientApplication.scala:241)
              at org.apache.spark.deploy.k8s.submit.KubernetesClientApplication.start(KubernetesClientApplication.scala:204)
              at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:845)
              at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:161)
              at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:184)
              at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86)
              at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:920)
              at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:929)
              at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
      Caused by: java.net.SocketException: Broken pipe (Write failed)
              at java.net.SocketOutputStream.socketWrite0(Native Method)
              at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
              at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
              at sun.security.ssl.OutputRecord.writeBuffer(OutputRecord.java:431)
              at sun.security.ssl.OutputRecord.write(OutputRecord.java:417)
              at sun.security.ssl.SSLSocketImpl.writeRecordInternal(SSLSocketImpl.java:894)
              at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:865)
              at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123)
              at okio.Okio$1.write(Okio.java:79)
              at okio.AsyncTimeout$1.write(AsyncTimeout.java:180)
              at okio.RealBufferedSink.flush(RealBufferedSink.java:224)
              at okhttp3.internal.http2.Http2Writer.settings(Http2Writer.java:203)
              at okhttp3.internal.http2.Http2Connection.start(Http2Connection.java:515)
              at okhttp3.internal.http2.Http2Connection.start(Http2Connection.java:505)
              at okhttp3.internal.connection.RealConnection.startHttp2(RealConnection.java:298)
              at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.java:287)
              at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:168)
              at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257)
              at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135)
              at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114)
              at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
              at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
              at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
              at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
              at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
              at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
              at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
              at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
              at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126)
              at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
              at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
              at io.fabric8.kubernetes.client.utils.BackwardsCompatibilityInterceptor.intercept(BackwardsCompatibilityInterceptor.java:119)
              at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
              at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
              at io.fabric8.kubernetes.client.utils.ImpersonatorInterceptor.intercept(ImpersonatorInterceptor.java:68)
              at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
              at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
              at io.fabric8.kubernetes.client.utils.HttpClientUtils.lambda$createHttpClient$3(HttpClientUtils.java:112)
              at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
              at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
              at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:254)
              at okhttp3.RealCall.execute(RealCall.java:92)
              at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:411)
              at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleResponse(OperationSupport.java:372)
              at io.fabric8.kubernetes.client.dsl.base.OperationSupport.handleCreate(OperationSupport.java:241)
              at io.fabric8.kubernetes.client.dsl.base.BaseOperation.handleCreate(BaseOperation.java:819)
              at io.fabric8.kubernetes.client.dsl.base.BaseOperation.create(BaseOperation.java:334)
              ... 17 more
      20/05/21 15:17:21 INFO ShutdownHookManager: Shutdown hook called
      20/05/21 15:17:21 INFO ShutdownHookManager: Deleting directory /tmp/spark-aa4d1797-0e72-4a7f-8ea0-f2231371bbb1
      

      I think problem is with Java version. When I downgraded to 8_u162 then I was able to submit app, but there was similar exception in driver container (which is build on newest openjdk image so u252)
      What can I do to fix this bug ?

        Attachments

          Activity

            People

            • Assignee:
              dongjoon Dongjoon Hyun
              Reporter:
              maver1ck Maciej BryƄski
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: