idea使用spark时报错
Exception in thread “main” java.lang.ExceptionInInitializerError
at org.apache.spark.unsafe.array.ByteArrayMethods.(ByteArrayMethods.java:54)
at org.apache.spark.internal.config.package
.
<
i
n
i
t
>
(
p
a
c
k
a
g
e
.
s
c
a
l
a
:
1006
)
a
t
o
r
g
.
a
p
a
c
h
e
.
s
p
a
r
k
.
i
n
t
e
r
n
a
l
.
c
o
n
f
i
g
.
p
a
c
k
a
g
e
.<init>(package.scala:1006) at org.apache.spark.internal.config.package
.<init>(package.scala:1006)atorg.apache.spark.internal.config.package.(package.scala)
at org.apache.spark.SparkConf
.
<
i
n
i
t
>
(
S
p
a
r
k
C
o
n
f
.
s
c
a
l
a
:
639
)
a
t
o
r
g
.
a
p
a
c
h
e
.
s
p
a
r
k
.
S
p
a
r
k
C
o
n
f
.<init>(SparkConf.scala:639) at org.apache.spark.SparkConf
.<init>(SparkConf.scala:639)atorg.apache.spark.SparkConf.(SparkConf.scala)
at org.apache.spark.SparkConf.set(SparkConf.scala:94)
at org.apache.spark.SparkConf.set(SparkConf.scala:83)
at org.apache.spark.SparkConf.setAppName(SparkConf.scala:120)
at com.atuigu.doris.spark.JDBCDemo$.main(JDBCDemo.scala:10)
at com.atuigu.doris.spark.JDBCDemo.main(JDBCDemo.scala)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make private java.nio.DirectByteBuffer(long,int) accessible: module java.base does not “opens java.nio” to unnamed module @3590fc5b
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Constructor.checkCanSetAccessible(Constructor.java:188)
at java.base/java.lang.reflect.Constructor.setAccessible(Constructor.java:181)
at org.apache.spark.unsafe.Platform.(Platform.java:56)
… 10 more
1、注意基本的java、scala环境配置
2、注意spark与scala的版本兼容
3、最新的java不支持spark,推荐使用jdk8
4、将依赖中的scope范围注释,provided不会将对应的依赖打入包里
可以参考:https://blog.csdn.net/smileyan9/article/details/126661885