本文参考自: 原文地址
安装完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
解压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