线程“main”java.lang.unsupportedclassversionerror:org/apache/hadoop/fs/fsshell中出现异常:不支持的主版本51.0

pxq42qpu  于 2021-05-29  发布在  Hadoop
关注(0)|答案(4)|浏览(459)

我试图在hadoop上执行下面的命令

hadoop fs -ls /

但这是一个错误

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/hadoop/fs/FsShell : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: org.apache.hadoop.fs.FsShell.  Program will exit.

我已经尝试过更新java,但是它仍然给我同样的错误。
注意:对于集群节点,相同的命令在其他节点上起作用,但在2上不起作用。

myss37ts

myss37ts1#

如果使用cdh,可能需要将java版本更改为jdk1.7.0\u 67-cloudera。在我把 java 岛从 /usr/java/jdk1.6.0_31/usr/java/jdk1.7.0_67-cloudera ,我解决了问题。

bsxbgnwa

bsxbgnwa2#

该命令不起作用,因为它指向节点上可用的较新版本的hadoop jar,而不是已安装版本的hadoop jar
它指向放在盒子里的jar

/usr/lib/hadoop

然后我尝试从安装目录执行它,如下所示

/opt/cloudera/parcels/CDH/lib/hadoop/bin/hadoop fs -ls /

它对我有用。

s4chpxco

s4chpxco3#

尝试将jdk更新到1.7版本。也许,您已经更新了jre而不是jdk。

5jdjgkvh

5jdjgkvh4#

Unsupported major.minor version 51.0

您需要Java7(或更高版本)来运行这个。请参见:https://www.java.com/de/download/faq/java_7.xml
如果已经安装了java 7(或更高版本),请使用以下命令执行:

C:\Program Files\Java\<Java Version (jre7/jre8>\bin\java.exe -jar <Path To .Jar>

相关问题