使用SparkStreaming报错java.lang.ClassNotFoundException: org.apache.spark.streaming.StreamingContext解决方案

在使用sparkStreaming做实时数据分析时直接扼杀在摇篮中,报错找不到StreamingContext类:
使用SparkStreaming报错java.lang.ClassNotFoundException: org.apache.spark.streaming.StreamingContext解决方案_第1张图片
使用SparkStreaming报错java.lang.ClassNotFoundException: org.apache.spark.streaming.StreamingContext解决方案_第2张图片
然而我的pom.xml中也导入了相应的依赖:
使用SparkStreaming报错java.lang.ClassNotFoundException: org.apache.spark.streaming.StreamingContext解决方案_第3张图片

解决方案

问题就出在依赖的范围:provided
这表示编译和测试时有效,并且该jar包在运行时由服务器提供
因此只需要将这一行去掉即可:
使用SparkStreaming报错java.lang.ClassNotFoundException: org.apache.spark.streaming.StreamingContext解决方案_第4张图片

附加依赖的几种范围

compile:默认值,适用于所有阶段(表明该jar包在编译、运行以及测试中路径俊可见),并且会随着项目直接发布。

provided:编译和测试时有效,并且该jar包在运行时由服务器提供。如servlet-api.

runtime:运行时使用,对测试和运行有效。如jdbc.

test:只在测试时使用,在编译和运行时不起作用。发布项目时没有作用。

system:不依赖maven仓库解析,需要提供依赖的显式的置顶jar包路径。对项目的移植来说是不方便的。

你可能感兴趣的:(spark)