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
上圖只是筆者從其他地方貼過來的,因為忘了截圖了。
但是原理上是一樣的,都是同樣的錯誤。因為安裝時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