【SparkStreaming】java.lang.NoClassDefFoundError: org/apache/spark/streaming/StreamingContext
2020-07-15 04:17
141 查看
【问题描述】
说一件很神奇的事情,今天在使用SparkStreaming进行Scala编程的时候,发生了如下问题:
[code]Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/streaming/StreamingContext at com.xzw.sparkstreaming.KafkaToHBase$.main(KafkaToHBase.scala:27) at com.xzw.sparkstreaming.KafkaToHBase.main(KafkaToHBase.scala) Caused by: java.lang.ClassNotFoundException: org.apache.spark.streaming.StreamingContext at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ... 2 more
从报错来看是没有发现那个类,这就奇怪了,代码中明明有这个类,而且还没有任何报错:
小编的pom.xml中也导入了相应的依赖:
[code]<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.11</artifactId> <version>2.4.0-cdh6.3.1</version> <scope>provided</scope> </dependency>
【解决方案】
问题出现在:<scope>provided</scope>这里,这表示编译和测试时有效,并且该jar包在运行时由服务器提供。所以出错了,解决办法就简单了,直接在pom.xml文件中去掉这一行即可。
在此也列举出附加依赖的集中弄范围,仅供参考:
[code]compile:默认值,适用于所有阶段(表明该jar包在编译、运行以及测试中路径俊可见),并且会随着项目直接发布。 provided:编译和测试时有效,并且该jar包在运行时由服务器提供。 runtime:运行时使用,对测试和运行有效。 test:只在测试时使用,在编译和运行时不起作用,发布项目时没有作用。 system:不依赖maven仓库解析,需要提供依赖的显式的置顶jar包路径。对项目的移植来说是不方便的。
相关文章推荐
- Method createStream([class org.apache.spark.streaming.api.java.JavaStreamingContext, class java.uti
- Tomcat7出现HTTP Status 500 - java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl cannot b
- Spark启动时出现Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configur
- Tomcat7出现HTTP Status 500 - java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl cannot b
- Spark问题[一]:java.lang.ClassNotFoundException: org.apache.spark.launcher.Main
- kafka和spark集成启动报错java.lang.NoClassDefFoundError:org/apache/zookeeper/Watcher
- java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl
- mybatis-plus自动生成的时候报错java.lang.NoClassDefFoundError: org/apache/velocity/context/Context
- 访问tomcat7 java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl
- Spark java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32
- tomcat启动报错:java.lang.ClassCastException: org.apache.jasper.runtime.ELContextImpl cannot be cast to o
- struts2 action空指针异常 org.apache.struts2.ServletActionContext java.lang.NullPointerException
- jetty java.lang.VerifyError: (class: org/apache/jasper/runtime/PageContextImpl
- Caused by: java.lang.ClassNotFoundException: org.apache.spark.ml.param.Param
- java.lang.NoClassDefFoundError: Could not initialize class org.apache.jasper.el.ELContextImpl
- 访问tomcat7 java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl
- Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.RequestContext
- java.lang.ClassNotFoundException: org.apache.xbean.spring.context.SpringApplicationContext
- org.apache.spark.sql.api.java.JavaSQLContext