satya@ubuntu:~/hadoop/bin$ hadoop namenode -format
不赞成:不赞成使用此脚本执行hdfs命令。而是使用hdfs命令。
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/hadoop/hdfs/server/namenode/NameNode : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
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:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.apache.hadoop.hdfs.server.namenode.NameNode. Program will exit.
4条答案
按热度按时间06odsfpq1#
如果你能展示你的hadoop版本就更好了。。。但是对于hadoop2,我认为您可以尝试使用新的format命令
所以在你的情况下,输入
(我指的是
Hadoop 2.7.0
这应该适用于你的情况。)unftdfkk2#
默认的java版本和hadoop的java版本应该匹配。请执行以下操作:
打开
hadoop-env.sh
(可以在hadoop config文件夹中找到)并搜索JAVA_HOME
. 此java版本和默认java版本应该匹配。注意:将javahome设置为指向jdk文件夹,而不是java的bin文件夹
y53ybaqx3#
此错误(
Unsupported major.minor version
)通常出现的原因是编译时使用较高的jdk,运行时使用较低的jdk。在这种情况下51
对应于jdk7(要获得更多版本Map,请访问此链接),这表示无论jvm1.6运行时加载了什么,它都是针对jvm1.7的。尝试使用JDK1.7并使用JAVA_HOME
中的环境变量hadoop-env.sh
.djmepvbi4#
我也遇到了这个问题。当我打字时:
我发现hdfs的类路径是错误的。后来我做到了
很管用,希望对你有帮助。