在安装hive的过程中,我觉得我是按照教程走的,但是在启动hive时还是报错了,错误如下
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/hadoop/hive/ql/io/NullScanFileSystem : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:808)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:442)
at java.net.URLClassLoader.access$100(URLClassLoader.java:64)
at java.net.URLClassLoader$1.run(URLClassLoader.java:354)
at java.net.URLClassLoader$1.run(URLClassLoader.java:348)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:347)
at java.lang.ClassLoader.loadClass(ClassLoader.java:430)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:323)
at java.lang.ClassLoader.loadClass(ClassLoader.java:363)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:278)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:363)
at java.util.ServiceLoader$1.next(ServiceLoader.java:445)
at org.apache.hadoop.fs.FileSystem.loadFileSystems(FileSystem.java:2558)
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2569)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2586)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:89)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2625)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2607)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:368)
at org.apache.hadoop.fs.FileSystem.getLocal(FileSystem.java:339)
at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addDependencyJars(TableMapReduceUtil.java:788)
at org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil.addHBaseDependencyJars(TableMapReduceUtil.java:717)
at org.apache.hadoop.hbase.util.MapreduceDependencyClasspathTool.run(MapreduceDependencyClasspathTool.java:59)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.hbase.util.MapreduceDependencyClasspathTool.main(MapreduceDependencyClasspathTool.java:70)
然后我就去网上搜索教程,他们大部分都说是由于jdk版本低,升级就好,或者更改Hadoop某个文件的路径,但是我在输入了
java -version javac -version
这两个命令后,发现我的显示的版本号相同,并且都是1.8版本的,然后我就开始思考别的问题,有一篇在Ubuntu下查看jdk安装路径的博客给了我启发,
然后我就想是不是有可能是我jdk的路径不对,我就先进入对应的路径
cd /usr/bin
然后查找java
ls -l java
根据绿色的提示再进入对应的路径,再再次查找java
cd /etc/alternatives ls -l java
这样就显示出了我的安装路径,然后我返回根目录,再打开.bashrc文件,查看我的路径是否正确
图中我已经改过来了,原先JAVA_HOME那里是错误的
更改过来后,hive就可以正常启动了,希望能对大家有所帮助。
参考博客:
查看jdk安装路径:https://blog.csdn.net/shuzhuchengfu/article/details/78546010
hive疑难杂症:https://blog.csdn.net/u012808902/article/details/77658033