问题原因
在学spark的过程中遇到这个问题,启动集群的时候,mini1(master节点)启动成功,jps能看到master进程,而worker没有启动,查看原因,发现报了这个错java.lang.UnsupportedClassVersionError…Unsupported major.minor version 52.0。原因是jdk版本太低,我用的是spark2.2.0版本,要求jdk版本至少是1.8。执行java -version发现我的版本是1.7。
解决办法
-
既然问题找到了,只要对症下药就行,我们需要下载一个新版本的jdk来覆盖老版本的jdk,去这里下载jdk1.8下载官网,如果不想登录oracle,也可以点击这里下载我分享的百度云下载提取码:n4sx。
-
下载好jdk1.8之后,我们把它放到linux,然后执行
tar -zvxf jdk-8u162-linux-x64.tar.gz 解压压缩包 -
在终端执行 echo $JAVA_HOME找到原来版本的jdk的文件位置,cd到原版本jdk的目录,删除原来的jdk文件,让新的jdk文件夹代替它。
-
执行 vi /etc/profile 修改JAVA_HOME。
-
最重要的一步,不能绕过:执行以下四个语句删除原来的jdk产生的文件:
rm -f /usr/bin/java
rm -f /usr/bin/javac
rm -f /etc/alternatives/java
rm -f /etc/alternatives/javac
执行完后在执行 java -version,此时jdk会重新生成被删除的四个文件,这样才算完全更新了jdk的版本,然后我们会发现jdk已经更新到1.8了。
6. 此时集群就能正常启动了。(ps:不要忘记为集群里的其他机器更改版本哦)