java_home错误:更改java或hadoop-env.sh文件的版本?

时间:2014-12-30 12:29:56

标签: macos hadoop java-home

在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

1 个答案:

答案 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