获取类 io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder 的 java.lang.NoClassDefFoundError

问题描述 投票:0回答:1

我正在 Spark Slave 上运行一个版本为 Spark-2.5.6-bin-hadoop 的 jar,在提交 jar 时出现此错误

Exception occurred while create new JwtSource
java.lang.NoClassDefFoundError: Could not initialize class io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder
    at io.spiffe.workloadapi.internal.GrpcManagedChannelFactory.createNativeSocketChannel(GrpcManagedChannelFactory.java:55)
    at io.spiffe.workloadapi.internal.GrpcManagedChannelFactory.newChannel(GrpcManagedChannelFactory.java:41)
    at io.spiffe.workloadapi.DefaultWorkloadApiClient.newClient(DefaultWorkloadApiClient.java:133)
    at io.spiffe.workloadapi.DefaultJwtSource.createClient(DefaultJwtSource.java:221)
    at io.spiffe.workloadapi.DefaultJwtSource.newSource(DefaultJwtSource.java:90)

我使用的spiffe依赖是这个

        <dependency>
            <groupId>io.spiffe</groupId>
            <artifactId>java-spiffe-provider</artifactId>
            <version>0.6.3</version>
        </dependency>
        <dependency>
            <groupId>io.spiffe</groupId>
            <artifactId>java-spiffe-core</artifactId>
            <version>0.6.3</version>
        </dependency>

从我在网上找到的任何解决方案来看,问题似乎出在番石榴版本上,我正在部署的 jar 是从

guava 29.0-jre
构建的,而 Spark Slave 从
guava-14.0jar
 中选择 
/opt/spark-2.4.6-bin-hadoop2.7/jars

请告诉我如何解决这些依赖冲突问题。

apache-spark netty guava spiffe
1个回答
0
投票

一般方法是采用旧库并更新它,可能会将需要旧库的任何其他项目更新为需要新库的新版本。

就您而言,您可能应该更新spark、guava,甚至可能更多。

© www.soinside.com 2019 - 2024. All rights reserved.