Apache spark org/apache/spark/Logging问题

Apache spark org/apache/spark/Logging问题,apache-spark,hbase,Apache Spark,Hbase,我想处理spark上的数据并将其插入HBase。我正在使用 Hbase Spark(Apache Hbase)库() 我得到以下例外情况 Caused by: java.lang.NoClassDefFoundError: org/apache/spark/Logging at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.jav

我想处理spark上的数据并将其插入HBase。我正在使用 Hbase Spark(Apache Hbase)库()

我得到以下例外情况

Caused by: java.lang.NoClassDefFoundError: org/apache/spark/Logging
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.apache.hadoop.hbase.spark.JavaHBaseContext.<init>(JavaHBaseContext.scala:46)
    at job.sqoop_process.HostLookupGenerator.insert(HostLookupGenerator.java:44)
    at job.sqoop_process.SparkSqoopJob.process(SparkSqoopJob.java:17)
    at job.spark.SparkExecutor$Executor.execute(SparkExecutor.java:75)
    at job.spark.SparkExecutor.main(SparkExecutor.java:37)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$4.run(ApplicationMaster.scala:721)
原因:java.lang.NoClassDefFoundError:org/apache/spark/Logging
位于java.lang.ClassLoader.defineClass1(本机方法)
位于java.lang.ClassLoader.defineClass(ClassLoader.java:763)
位于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)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
位于org.apache.hadoop.hbase.spark.JavaHBaseContext.(JavaHBaseContext.scala:46)
at job.sqoop_process.HostLookupGenerator.insert(HostLookupGenerator.java:44)
at job.sqoop_process.SparkSqoopJob.process(SparkSqoopJob.java:17)
在job.spark.SparkExecutor$Executor.execute(SparkExecutor.java:75)
main(SparkExecutor.java:37)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于org.apache.spark.deploy.warn.ApplicationMaster$$anon$4.run(ApplicationMaster.scala:721)
问题在于HBase-Spark-2.0.0-alpha4版本使用的Spark日志类在Spark-2.3.1中被弃用

有人能帮我解决这个问题吗


注意:我使用的是Spark 2.3.1和HBase 1.2.6.1

我使用的是Spark 2.2.x,我遇到了相同的问题。我忘记了我设法将其从以下哪些依赖项中删除,但请查看您的配置中缺少哪些依赖项,然后尝试添加它。我应该工作。我相信这是火花流:

 <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.11</artifactId>
      <version>${spark.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-streaming_2.11</artifactId>
      <version>${spark.version}</version>
    </dependency>
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
      <version>${scala.version}</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-spark</artifactId>
      <version>${hbase-spark.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-mapreduce</artifactId>
      <version>${hbase-spark.version}</version>
    </dependency>

公用记录
公用记录
1.1.1
org.apache.spark
spark-core_2.11
${spark.version}
org.apache.spark
spark-U 2.11
${spark.version}
org.scala-lang
scala图书馆
${scala.version}
org.apache.hbase
hbase客户端
${hbase.version}
org.apache.hbase
hbase spark
${hbase spark.version}
org.apache.hbase
hbase mapreduce
${hbase spark.version}

从今天起,我可以使用在


org.apache.hbase.connectors.spark
hbase spark
1.0.0

您使用的${hbase spark.version}和${hbase.version}是什么。我已经尝试了hbase-spark.version的2.0.0-alpha4和hbase.version的2.0.0,但仍然失败了。我还添加了spark streaming.hbase.version是2.0.0。对于我来说,hbase spark版本是3.0.0-SNAPSHOT,这是我自己从源代码构建的,因为出于某种原因,hbase spark尚未包含在正式的hbase 2.x构建中。然而,据我记忆所及,如果您尝试使用maven中可用的构建,它也应该可以工作(如2.0.0-alpha4)。事实上,我可能错在上面——在我的例子中,登录部分确实来自定制的hbase spark版本。尝试自己构建它,希望它能为您工作。您编译了hbase的哪个分支的源代码?我已经编译了hbase的主分支,但在HTTP模块上编译失败。获取以下错误。[错误]无法执行goal net.revelc.code:warbucks maven插件:1.1.0:check(运行warbucks)on project hbase http:加载类问题:无效LOC头(错误签名)->[Help 1]org.apache.maven.lifecycle.lifecycle执行异常:无法执行goal net.revelc.code:warbucks maven插件:1.1.0:check(运行warbucks)关于项目hbase http:加载类时出现问题有什么想法吗?我故意没有选择任何特定的分支,因为如果我签出了2.0或其他版本,那么hbase spark就不存在了。这就是为什么我尝试使用默认ant,它起作用了。