[ 
https://issues.apache.org/jira/browse/SPARK-45201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17766471#comment-17766471
 ] 

Sebastian Daberdaku commented on SPARK-45201:
---------------------------------------------

Out of completeness, this is what my spark-properties.conf looks like (i've 
censored some info):
{code:java}
spark.connect.grpc.binding.port 15002
spark.driver.host 10.0.0.246
spark.dynamicAllocation.enabled true
spark.dynamicAllocation.minExecutors 0
spark.dynamicAllocation.maxExecutors 5
spark.dynamicAllocation.executorAllocationRatio 0.25
spark.dynamicAllocation.schedulerBacklogTimeout 1s
spark.dynamicAllocation.sustainedSchedulerBacklogTimeout 120s
spark.dynamicAllocation.executorIdleTimeout     300s
spark.dynamicAllocation.cachedExecutorIdleTimeout 1800s
spark.jars.ivy /tmp/.ivy
spark.kubernetes.allocation.driver.readinessTimeout 60s
spark.kubernetes.executor.container.image 
0123456789.dkr.ecr.some-aws-region.amazonaws.com/spark-connect-3.5.0:v1.0.18
spark.kubernetes.container.image.pullPolicy Always
spark.kubernetes.driver.pod.name spark-connect-0
spark.kubernetes.executor.podTemplateFile /opt/spark/executor-pod-template.yaml
spark.kubernetes.executor.request.cores 12000m
spark.driver.cores 1
spark.executor.cores 64
spark.kubernetes.namespace spark-connect
spark.master k8s://https://kubernetes.default.svc.cluster.local:443
spark.ui.port 4040
spark.executor.memory 40000m
spark.executor.memoryOverhead 8000m
spark.driver.memory 10240m
spark.driver.memoryOverhead 2048m
spark.executor.extraJavaOptions -XX:+ExitOnOutOfMemoryError 
-XX:+UseCompressedOops -XX:+UseG1GC
spark.driver.extraJavaOptions -XX:+ExitOnOutOfMemoryError 
-XX:+UseCompressedOops -XX:+UseG1GC
spark.sql.parquet.datetimeRebaseModeInWrite CORRECTED
spark.driver.extraClassPath /opt/spark/jars/*
spark.driver.extraLibraryPath /opt/hadoop/lib/native
spark.executor.extraClassPath /opt/spark/jars/*
spark.executor.extraLibraryPath /opt/hadoop/lib/native
spark.sql.hive.metastore.jars builtin
spark.hadoop.aws.region some-aws-region
spark.sql.catalogImplementation hive
spark.sql.execution.arrow.pyspark.enabled true
spark.sql.execution.arrow.pyspark.fallback.enabled true
spark.eventLog.enabled false
spark.sql.extensions io.delta.sql.DeltaSparkSessionExtension
spark.sql.catalog.spark_catalog org.apache.spark.sql.delta.catalog.DeltaCatalog
spark.delta.logStore.s3a.impl io.delta.storage.S3DynamoDBLogStore
spark.io.delta.storage.S3DynamoDBLogStore.ddb.tableName 
dynamodb-table-delta-table-lock
spark.io.delta.storage.S3DynamoDBLogStore.ddb.region some-aws-region
spark.databricks.delta.replaceWhere.constraintCheck.enabled false
spark.databricks.delta.replaceWhere.dataColumns.enabled true
spark.databricks.delta.schema.autoMerge.enabled false
spark.databricks.delta.merge.repartitionBeforeWrite.enabled true
spark.databricks.delta.optimize.repartition.enabled true
spark.databricks.delta.checkpoint.partSize 10
spark.databricks.delta.properties.defaults.dataSkippingNumIndexedCols -1
spark.kubernetes.authenticate.driver.serviceAccountName spark-connect
spark.kubernetes.authenticate.executor.serviceAccountName spark-connect
spark.kubernetes.executor.annotation.eks.amazonaws.com/role-arn 
arn:aws:iam::0123456789:role/spark-connect-irsa
spark.kubernetes.authenticate.submission.caCertFile 
/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
spark.kubernetes.authenticate.submission.oauthTokenFile 
/var/run/secrets/kubernetes.io/serviceaccount/token
spark.hadoop.fs.s3a.aws.credentials.provider 
com.amazonaws.auth.WebIdentityTokenCredentialsProvider
spark.hadoop.fs.s3a.impl org.apache.hadoop.fs.s3a.S3AFileSystem
spark.hadoop.fs.s3.impl org.apache.hadoop.fs.s3a.S3AFileSystem
spark.hadoop.fs.s3a.fast.upload true
spark.hadoop.fs.s3a.experimental.input.fadvise random
spark.hive.imetastoreclient.factory.class 
com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory
spark.aws.glue.cache.table.enable true
spark.aws.glue.cache.table.size 1000
spark.aws.glue.cache.table.ttl-mins 30
spark.aws.glue.cache.db.enable true
spark.aws.glue.cache.db.size 1000
spark.aws.glue.cache.db.ttl-mins 30
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.hadoop.mapreduce.input.fileinputformat.list-status.num-threads 64
spark.sql.sources.parallelPartitionDiscovery.threshold 256
spark.connect.grpc.maxInboundMessageSize 1073741824
spark.connect.grpc.arrow.maxBatchSize 64m
spark.sql.catalog.spark_catalog.defaultDatabase ex_nec {code}

> NoClassDefFoundError: InternalFutureFailureAccess when compiling Spark 3.5.0
> ----------------------------------------------------------------------------
>
>                 Key: SPARK-45201
>                 URL: https://issues.apache.org/jira/browse/SPARK-45201
>             Project: Spark
>          Issue Type: Bug
>          Components: Connect
>    Affects Versions: 3.5.0
>            Reporter: Sebastian Daberdaku
>            Priority: Major
>         Attachments: Dockerfile
>
>
> I am trying to compile Spark 3.5.0 and make a distribution that supports 
> Spark Connect and Kubernetes. The compilation seems to complete correctly, 
> but when I try to run the Spark Connect server on kubernetes I get a 
> "NoClassDefFoundError" as follows:
> {code:java}
> Exception in thread "main" java.lang.NoClassDefFoundError: 
> org/sparkproject/guava/util/concurrent/internal/InternalFutureFailureAccess
>     at java.base/java.lang.ClassLoader.defineClass1(Native Method)
>     at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
>     at 
> java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
>     at 
> java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
>     at 
> java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
>     at 
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
>     at 
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
>     at 
> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
>     at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
>     at java.base/java.lang.ClassLoader.defineClass1(Native Method)
>     at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
>     at 
> java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
>     at 
> java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
>     at 
> java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
>     at 
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
>     at 
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
>     at 
> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
>     at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
>     at java.base/java.lang.ClassLoader.defineClass1(Native Method)
>     at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
>     at 
> java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
>     at 
> java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
>     at 
> java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
>     at 
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
>     at 
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
>     at 
> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
>     at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
>     at 
> org.sparkproject.guava.cache.LocalCache$LoadingValueReference.<init>(LocalCache.java:3511)
>     at 
> org.sparkproject.guava.cache.LocalCache$LoadingValueReference.<init>(LocalCache.java:3515)
>     at 
> org.sparkproject.guava.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2168)
>     at 
> org.sparkproject.guava.cache.LocalCache$Segment.get(LocalCache.java:2079)
>     at org.sparkproject.guava.cache.LocalCache.get(LocalCache.java:4011)
>     at org.sparkproject.guava.cache.LocalCache.getOrLoad(LocalCache.java:4034)
>     at 
> org.sparkproject.guava.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5010)
>     at 
> org.apache.spark.storage.BlockManagerId$.getCachedBlockManagerId(BlockManagerId.scala:146)
>     at 
> org.apache.spark.storage.BlockManagerId$.apply(BlockManagerId.scala:127)
>     at 
> org.apache.spark.storage.BlockManager.initialize(BlockManager.scala:536)
>     at org.apache.spark.SparkContext.<init>(SparkContext.scala:625)
>     at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2888)
>     at 
> org.apache.spark.sql.SparkSession$Builder.$anonfun$getOrCreate$2(SparkSession.scala:1099)
>     at scala.Option.getOrElse(Option.scala:189)
>     at 
> org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:1093)
>     at 
> org.apache.spark.sql.connect.service.SparkConnectServer$.main(SparkConnectServer.scala:34)
>     at 
> org.apache.spark.sql.connect.service.SparkConnectServer.main(SparkConnectServer.scala)
>     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method)
>     at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
>     at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.base/java.lang.reflect.Method.invoke(Method.java:568)
>     at 
> org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
>     at 
> org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:1029)
>     at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:194)
>     at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:217)
>     at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:91)
>     at 
> org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1120)
>     at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1129)
>     at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
> Caused by: java.lang.ClassNotFoundException: 
> org.sparkproject.guava.util.concurrent.internal.InternalFutureFailureAccess
>     at 
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
>     at 
> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
>     at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
>     ... 56 more{code}
> My build command is as follows:
> {code:java}
> export MAVEN_OPTS="-Xss256m -Xmx8g -XX:ReservedCodeCacheSize=2g"
> ./dev/make-distribution.sh --name spark --pip -Pscala-2.12 -Pconnect 
> -Pkubernetes -Phive -Phive-thriftserver -Phadoop-3 -Dhadoop.version="3.3.4" 
> -Dhive.version="2.3.9" -Dhive23.version="2.3.9" 
> -Dhive.version.short="2.3"{code}
> I am building Spark using Debian Bookworm, with Java 8 8u382 and Maven 3.8.8.
> I get the same error even when I omitt the -Pconnect profile from Maven, and 
> simply add the "org.apache.spark:spark-connect_2.12:3.5.0" jar with the 
> appropriate spark config. On the other hand, if I download the pre-built 
> spark package, and add the spark-connect jar, this error does not appear. 
> What could I be possibly missing in my build environment? I have omitted the  
> yarn, mesos and sparkr profiles (which are used in the distributed built) on 
> purpose, but I do not see how these affect spark connect.
> Any help will be appreciated!
>  



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

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

Reply via email to