报错信息:
java.lang.AssertionError: unsafe symbol Unstable (child of package InterfaceStability) in runtime reflection universe
at scala.reflect.internal.Symbols$Symbol.<init>(Symbols.scala:237)
at scala.reflect.internal.Symbols$TypeSymbol.<init>(Symbols.scala:3082)
at scala.reflect.internal.Symbols$ClassSymbol.<init>(Symbols.scala:3268)
at scala.reflect.internal.Symbols$StubClassSymbol.<init>(Symbols.scala:3542)
at scala.reflect.internal.Symbols.newStubSymbol(Symbols.scala:220)
at scala.reflect.internal.Symbols.newStubSymbol$(Symbols.scala:216)
at scala.reflect.internal.SymbolTable.newStubSymbol(SymbolTable.scala:28)
at scala.reflect.internal.Symbols$Symbol.newStubSymbol(Symbols.scala:540)
at scala.reflect.internal.pickling.UnPickler$Scan.$anonfun$readSymbol$6(UnPickler.scala:275)
at scala.reflect.internal.pickling.UnPickler$Scan.$anonfun$readSymbol$5(UnPickler.scala:262)
at scala.reflect.internal.pickling.UnPickler$Scan.$anonfun$readSymbol$4(UnPickler.scala:262)
at scala.reflect.internal.pickling.UnPickler$Scan.readExtSymbol$1(UnPickler.scala:260)
at scala.reflect.internal.pickling.UnPickler$Scan.readSymbol(UnPickler.scala:283)
at scala.reflect.internal.pickling.UnPickler$Scan.readSymbolRef(UnPickler.scala:647)
at scala.reflect.internal.pickling.UnPickler$Scan.readType(UnPickler.scala:415)
at scala.reflect.internal.pickling.UnPickler$Scan.$anonfun$readTypeRef$1(UnPickler.scala:656)
at scala.reflect.internal.pickling.UnPickler$Scan.at(UnPickler.scala:190)
at scala.reflect.internal.pickling.UnPickler$Scan.readTypeRef(UnPickler.scala:656)
at scala.reflect.internal.pickling.UnPickler$Scan.readAnnotationInfo(UnPickler.scala:490)
问题来源:新接手的项目,在idea中,本地调试测试代码
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.spark.util.Utils$.classForName(Ljava/lang/String;)Ljava/lang/Class;
at org.apache.spark.sql.SparkSession$.org$apache$spark$sql$SparkSession$$instantiateSessionState(SparkSession.scala:1048)
at org.apache.spark.sql.SparkSession$$anonfun$sessionState$2.apply(SparkSession.scala:130)
at org.apache.spark.sql.SparkSession$$anonfun$sessionState$2.apply(SparkSession.scala:130)
首先报错是这样的信息,报错信息,去看pom文件,如下:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<encoding>UTF-8</encoding>
<scala.version>2.12.10</scala.version>
<spark.version>3.0.1</spark.version>
<hadoop.version>2.7.1</hadoop.version>
<scala.compat.version>2.12.10</scala.compat.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.12</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.12</artifactId>
<version>0.11.0.0</version>
</dependency>
<dependency>
<groupId>com.yammer.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kafka-0-10_2.12</artifactId>
<version>3.0.1</version>
</dependency>
</dependencies>
于是乎发现scala-version是2.12的版本,spark-hive的版本竟然是2.11,所以直接就将maven依赖改了:
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.12</artifactId>
<version>2.4.0</version>
</dependency>
真是改的不彻底,害死人,spark-hive的只改了scala的版本,为啥spark的版本就不改????
运行发现问题没有了,解决了。。。。。心里还是挺高兴的。。
后面问题就来了,报了标题的错误,这是哪里的问题??不知道,百度吧,百度也没什么好的解决办法-----查了好久~~~~~~
又去看pom文件,这时候发现spark-hive的spark版本有事不对应的,改吧,解决了
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.12</artifactId>
<version>${spark.version}</version>
</dependency>
所以啊,注意!!!!!!!!
好多问题都是依赖的问题,看pom文件,注意版本版本版本的统一,特别重要!!!
java.lang.NoSuchMethodError 这个问题先去看版本对应