Hadoop MAC OS 安装问题

Posted

技术标签:

【中文标题】Hadoop MAC OS 安装问题【英文标题】:Hadoop MAC OS installation woes 【发布时间】:2011-09-28 02:31:34 【问题描述】:

所以我正在尝试按照本说明中的步骤在 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 线程“主”java.lang.UnsupportedClassVersionError 中的异常:.class 文件中的版本号错误 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:676) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:56) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:195) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:188) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:317) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:252) 在 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375) 线程“主”java.lang.UnsupportedClassVersionError 中的异常:.class 文件中的版本号错误 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:676) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:56) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:195) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:188) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:317) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:252) 在 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

不行。同样可怕的错误。 我做错了什么?

【问题讨论】:

你是怎么安装的?您可以尝试使用自制软件安装。 github.com/mxcl/homebrew (brew install hadoop) 【参考方案1】:

设置 JAVA_HOME 可能仍然存在问题,因为它可能与网络上的示例不同。在你的终端中使用这个命令来找到你的 JAVA_HOME 目录 /usr/libexec/java_home

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

这是由于您正在运行的 jre 比编译类文件的 jre 旧。例如使用 1.5 jre 运行 1.6 编译的 java。如果该类仅针对 1.6 编译,则它不适用于 1.5。

做一个

  java -version

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

【讨论】:

java 版本 "1.6.0_26" Java(TM) SE 运行时环境 (build 1.6.0_26-b03-384-9M3425) Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02- 384,混合模式)【参考方案4】:

尝试输入 jps 并查看实际运行的节点数量。 应该有 6 个。希望你不会有问题。

【讨论】:

【参考方案5】:

以下步骤对我来说无缝工作:

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

【讨论】:

【参考方案6】:

但是,对于较新版本的 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 脚本命令。

【讨论】:

以上是关于Hadoop MAC OS 安装问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac OS 上安装 Spark

mac os x 编译spark-2.1.0 for hadoop-2.8.0

Hadoop 3.1.1 Mac OS Namenode 问题

mac os中的pygame安装问题

impala安装mac os指导

Mac OS X安装 Scrapy