首页 文章

Hadoop MAC OS安装问题

提问于
浏览
1

所以我试图按照本笔记中的步骤在MAC OS X Leopard上安装hadoop:Running Hadoop on a OS X Single Node Cluster .

我到达了第4步:格式化并运行Hadoop,我输入了以下内容:

hadoop-*/bin/hadoop namenode -format

这产生了以下不愉快的输出:

Macbook009:~ Hadoop$ hadoop-*/bin/hadoop namenode -format
    Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:676)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:676)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)

我做了一些谷歌搜索,并了解 JAVA_HOME 可能设置不正确 . 我创建了一个.bash_profile文件,如下所示:

export JAVA_HOME=/system/Library/Frameworks/JavaVM.framework/Versions/1.6/Home
export HADOOP_HOME=~/Users/Hadoop/hadoop-0.20.203.0

export PATH=$HADOOP_HOME/bin:$PATH

不行 . 同样的怪异错误 . 我究竟做错了什么?

6 回答

  • 1

    但是对于较新版本的OS X,如10.9设置上述PATH不起作用 .

    找到一种方法,可以在文件/ etc / paths中为MAC添加默认PATH环境 .

    在SUDO模式下使用终端打开此文件 .

    $ sudo nano / etc / paths(提示时输入密码) .

    以下面的格式附加路径 .

    /users/hadoop/hadoop-1.2.1/bin

    /users/hadoop/hadoop-1.2.1/sbin

    保存文件并重新启动计算机 . 下次不需要输入整个命令来从Script运行Hadoop脚本命令 .

  • 2

    设置JAVA_HOME可能仍然存在问题,因为它可能与Web上的示例不同 . 在终端中使用此命令可以找到JAVA_HOME目录/ usr / libexec / java_home

  • 0

    我怀疑实际运行Hadoop的JVM不是预期的,而是较旧的(Java 5) . 通过运行 ps (或任何Mac等效项)并检查命令行来验证这一点 .

    尝试将 $HADOOP_HOME/conf/hadoop-env.sh 中的 JAVA_HOME 设置为与 .bash_profile 中相同的路径 .

  • 0

    当你运行的jre比编译类文件的jre更旧时会导致这种情况 . 例如,使用1.5 jre运行1.6编译的java . 如果该类仅为1.6编译,则不适用于1.5 .

    做一个

    java -version
    

    看看你有哪个jre . 很可能你有一个旧的,需要升级它 .

  • 1

    尝试键入jps并查看实际运行的节点数 . 应该有6个 . 你不应该有问题 .

  • 1

    以下步骤为我无缝工作:

    http://ragrawal.wordpress.com/2012/04/28/installing-hadoop-on-mac-osx-lion

    对于wordcount示例,您需要将文件复制到hdfs,您可以在此处找到命令:(这是我在执行上述页面后遇到的唯一一步) .

    http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/#running-a-mapreduce-job

相关问题