【发布时间】:2018-10-08 07:04:00
【问题描述】:
我正在试用 hbase-spark 连接器。首先,我正在尝试this 代码。
我的 pom 依赖项是:
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-spark</artifactId>
<version>2.0.0-alpha4</version>
</dependency>
</dependencies>
运行代码时出现以下异常:
线程“主”java.lang.NoClassDefFoundError 中的异常:org/apache/spark/Logging 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:760) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:73) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:368) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:362) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:361) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 org.apache.hadoop.hbase.spark.JavaHBaseContext.(JavaHBaseContext.scala:46) 在 com.myproj.poc.sparkhbaseneo4j.App.main(App.java:71) 引起:java.lang.ClassNotFoundException:org.apache.spark.Logging 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 14 更多
com.myproj.poc.sparkhbaseneo4j.App.main(App.java:71) 在 github 代码中是 line 67。
我检查了this thread。它说我应该包含所有库的相同版本。早些时候,我的 pom 中有 2.3.0 版本的 spark 库。但我意识到hbase-spark 有最新版本2.0.0。所以我将所有 spark 库的版本降级为2.0.0。但我仍然遇到同样的异常。
或者我是否必须坚持使用 1.X.X 版本才能使用它,因为 this 回答说它在 1.5.2 版之后被删除?
【问题讨论】:
标签: apache-spark hadoop hbase maven-dependency