1. 程式人生 > >spark版本與java版本報錯問題解決

spark版本與java版本報錯問題解決

本文參考自: 原文地址

安裝完spark後執行出現這樣的錯誤:

Exception in thread "main" java.lang.UnsupportedClassVersionError:

org/apache/spark/network/util/ByteUnit : Unsupported major.minor version 52.0

at java.lang.ClassLoader.defineClass1(Native Method)

    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)

     at java

.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

上圖只是筆者從其他地方貼過來的,因為忘了截圖了。

    但是原理上是一樣的,都是同樣的錯誤。因為安裝時hadoop選用的是2.9.0版本,spark選用的是最近的2.3.1,然而剛開始的時候

jdk安裝的是Linux自帶的openjdk-7-jdk和openjdk-7-jre,由於spark在2.2版本以後就不再支援jdk7,所以在這種情況下,由於

spark和java的版本不適用,於是報錯。

解決方案:

1)解除安裝掉原來的jdk版本;

2)從jdk官網下載新的jdk版本安裝(這裡採用1.8往上的版本)

之後出現了一個問題,由於在下載的時候沒有注意到Ubuntu的問題,下載了rpm的安裝包,但是Ubuntu並不直接支援rpm版本的安裝,所

以這裡給出處理方法:

將rpm轉換為deb格式

1)apt-get install alien

2)alien <包名>.rpm

3)dpkg -i <包名>.deb #安裝安裝包

然後 java -version

檢視結果會發現並沒有成功。

4)配置環境變數(export JAVA_HOME JRE_HOME 以及相應的PATH CLASSPATH)

vim /etc/profile
source /etc/profile
5)

解壓tools.pack及rt.pack,

/usr/java/jdk1. 8 .0_45/jre/lib# ../bin/unpack200 rt.pack rt.jar   /usr/java/jdk1. 8 .0_45/lib# ../bin/unpack200 tools.pack tools.jar

之後再次 java -version 就可以看到安裝後的版本了。

原部落格:http://blog.51cto.com/53cto/1702607