我正在尝试在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上。
答案 0 :(得分:1)
尝试将JDK更新到1.7版。也许,您已经更新了JRE而不是JDK。
答案 1 :(得分:1)
如果您使用CDH,则可能需要将java版本更改为jdk1.7.0_67-cloudera。将JAVA_HOME从/usr/java/jdk1.6.0_31
更改为/usr/java/jdk1.7.0_67-cloudera
后,我解决了问题。
答案 2 :(得分:0)
该命令无效,因为它指向节点上较新版本的hadoop jar,而不是已安装版本的hadoop jar
指向放置在
中的罐子/usr/lib/hadoop
然后我尝试从安装目录执行它,如下所示
/opt/cloudera/parcels/CDH/lib/hadoop/bin/hadoop fs -ls /
它对我有用。
答案 3 :(得分:0)
Unsupported major.minor version 51.0
您需要Java 7(或更高版本)来运行它。 请参阅: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>