在hadoop中格式化namenode时线程“main”出现异常

hgqdbh6s  于 2021-06-02  发布在  Hadoop
关注(0)|答案(4)|浏览(382)
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.
06odsfpq

06odsfpq1#

如果你能展示你的hadoop版本就更好了。。。但是对于hadoop2,我认为您可以尝试使用新的format命令

[hdfs]$ $HADOOP_PREFIX/bin/hdfs namenode -format [-clusterid cid] [-force] [-nonInteractive]

所以在你的情况下,输入

satya@ubuntu:~/hadoop/bin$ hdfs namenode -format

(我指的是 Hadoop 2.7.0 这应该适用于你的情况。)

unftdfkk

unftdfkk2#

默认的java版本和hadoop的java版本应该匹配。请执行以下操作:

java -version

打开 hadoop-env.sh (可以在hadoop config文件夹中找到)并搜索 JAVA_HOME . 此java版本和默认java版本应该匹配。
注意:将javahome设置为指向jdk文件夹,而不是java的bin文件夹

y53ybaqx

y53ybaqx3#

此错误( Unsupported major.minor version )通常出现的原因是编译时使用较高的jdk,运行时使用较低的jdk。在这种情况下 51 对应于jdk7(要获得更多版本Map,请访问此链接),这表示无论jvm1.6运行时加载了什么,它都是针对jvm1.7的。尝试使用JDK1.7并使用 JAVA_HOME 中的环境变量 hadoop-env.sh .

djmepvbi

djmepvbi4#

我也遇到了这个问题。当我打字时:

$hadoop classpath

我发现hdfs的类路径是错误的。后来我做到了

vi ~/.bashrc 
export HADOOP_HDFS_HOME=$HADOOP_HOME

很管用,希望对你有帮助。

相关问题