在Mac 10.7.5上安装Hadoop 2.6.0的单节点设置时,手册http://hadoop.apache.org/docs/r1.2.1/single_node_setup.html需要更新java_home。 即,
在准备启动Hadoop群集部分中,它说:
“在发行版中,编辑文件conf / hadoop-env.sh以至少将JAVA_HOME定义为Java安装的根目录。”
我使用终端查询'/ usr / libexec / java_home'的结果,这是 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home, 对于java_home的值。
因此,hadoop脚本由于错误而无效:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home:bad substitution。
错误可能是由于Mac上当前安装的不匹配造成的。 我的Java是8.0_25,而hadoop使用的是6.0_05(最好来自Sun)。此外,这是jdk的路径,而不是jre,可能需要。
不幸的是,我没有在Oracle Java档案中为Mac OS的任何x找到任何java ire 1.6.x. http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
答案 0 :(得分:0)
Hadoop需要jdk 1.6或更高版本。要查找已安装的Java的位置,请执行以下步骤。
在linux命令行中输入命令 java 如果已经安装了java并将其添加到路径,这可能会为您提供一个位置。 输入 ll 这将为您提供java所在的确切位置。
例如:
哪个java 的/ usr / bin中/ JAVA
ls -all / usr / bin / java lrwxrwxrwx 1 root root 22 Sep 17 09:43 / usr / bin / java - >的/ etc /替代/ JAVA
ls -all / etc / alternatives / java lrwxrwxrwx 1 root root 35 Sep 17 09:43 / etc / alternatives / java - > /usr/lib/jvm/jdk1.7.0_60/bin/java
在这种情况下,JAVA_HOME的值将为 /usr/lib/jvm/jdk1.7.0_60
使用此值并将其添加到hadoop-env.sh中 例如: 导出JAVA_HOME = / usr / lib / jvm / jdk1.7.0_60
如果jdk不存在,则必须安装jdk。 你提到过JRE。你应该使用JDK。 JDK for MAC可在oracle网站上找到。
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
您所关注的安装文档的版本为1.2.1,而您拥有的hadoop版本是2.6.0。使用正确的安装文档。
http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/SingleCluster.html