Spark - 找不到异常org.apache.spark.Logging

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

我们正在使用Spark 2.3.0创建基于Spark的应用程序。我们的Spark工作与HBase交互。在创建JAR时,我们遇到以下编译时异常异常:org.apache.spark.Logging的[ERROR]类文件未找到此异常发生在代码中,即从HBase表读取数据。

我们能够使用下面的jar配置/版本将数据成功写入HBase表。

我们在pom.xml中使用以下配置

<property>
<org.apache.spark.version>2.3.0</org.apache.spark.version>
<scala.version>2.11</scala.version>
<hbase.version>1.0.0-cdh5.4.0</hbase.version>
</property> 

<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.version}</artifactId>
<version>${org.apache.spark.version}</version>
</dependency>


        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_${scala.version}</artifactId>
            <version>${org.apache.spark.version}</version>
        </dependency>


        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-spark</artifactId>
            <version>1.2.0-cdh5.10.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>${hbase.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-common</artifactId>
            <version>${hbase.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-server</artifactId>
            <version>${hbase.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-protocol</artifactId>
            <version>${hbase.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.htrace</groupId>
            <artifactId>htrace-core</artifactId>
            <version>3.1.0-incubating</version>
        </dependency>

我们在stackoverflow上找到了多个解决方案,所有提到使用Spark 1.6代替。 java.lang.NoClassDefFoundError: org/apache/spark/Logging

这对我们来说是不可能的。

还有其他解决方法可以解决这个问题吗?

谢谢

apache-spark cloudera cloudera-cdh
1个回答
0
投票

回复我在此发布的旧问题。由于我们无法回滚到Spark版本1.6(我们使用的是Spark 2.3),因此我们找到了使用HBaseContext.bulkGet的工作。

我们正在做以下事情:

val respDataFrame = keyDf.mapEachPartition((keys) => {
--> creating instance of HTable
--> create list of all the gets 
--> fetch getsList
})
© www.soinside.com 2019 - 2024. All rights reserved.