Hadoop:«错误:JAVA_HOME未设置»

时间:2012-01-11 21:44:04

标签: linux hadoop ubuntu-11.04

我正在尝试在Ubuntu 11.10上安装Hadoop。我将文件JAVA_HOME中的conf/hadoop-env.sh变量设置为:

# export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk

然后我执行这些命令(独立操作):

$ mkdir input 
$ cp conf/*.xml input 
$ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 
$ cat output/*

但执行第三个命令时出现以下错误:

  

错误:未设置JAVA_HOME

JAVA_HOME变量未正确设置吗?

12 个答案:

答案 0 :(得分:50)

确保您已移除评论标记,并更改了JAVA_HOME中的hadoop-env.sh以及相应的.bashrc和/或.profile

# export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk

应该是

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk

您可以在JAVA_HOME中为所有用户设置PATH/etc/profile(确保您之前没有将此设置为错误的路径)。

另外,不要忘记通过注销/执行或执行source /etc/profile来激活新的更改。

答案 1 :(得分:30)

您应该在Hadoop配置目录中的JAVA_HOME文件中设置hadoop-env.sh。 默认情况下,JAVA_HOME设置行已注释。

答案 2 :(得分:12)

在终端中输入echo $JAVA_HOME以确保JAVA_HOME已设置。

您也可以输入java -version来了解您实际使用的java版本。

顺便说一句,阅读你的描述似乎是你的实际写作

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk

在文件conf/hadoop-env.sh中,您应该在终端或~/.bashrc~/.profile中写入,然后输入source < path to modified file >

答案 3 :(得分:6)

您可以添加.bashrc文件:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

,当您更新软件包时,它会动态更改。

答案 4 :(得分:1)

将此export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk复制到hadoop-env.sh文件。

JAVA_HOME是存在java二进制文件的位置。

答案 5 :(得分:1)

最适合我的解决方案是将JAVA_HOME设置为/etc/environment

尽管可以在/ etc / profile文件中设置JAVA_HOME,但是JAVA_HOME或任何系统变量的首选位置是/etc/environment

在任何文本编辑器(例如nano或vim)中打开/ etc / environment并添加以下行:

JAVA_HOME="/usr/lib/jvm/your_java_directory"

加载变量:

source /etc/environment

检查变量是否正确加载:

echo $JAVA_HOME

答案 6 :(得分:1)

我尝试更改/etc/environment

JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

在从属节点上,它起作用。

答案 7 :(得分:0)

我尝试了上述解决方案,但以下内容对我有用

export JAVA_HOME=/usr/java/default

答案 8 :(得分:0)

在某些发行版(CentOS / OpenSuSe,...)中,只有在/ etc / environment中设置JAVA_HOME才能起作用。

答案 9 :(得分:0)

在这里,我们提供了在安装Hadoop时设置JAVA_HOME的简单步骤

  

第一步:转到Java库路径/ lib jvm

然后在.bashrc文件中设置JAVA_HOME和PATH

来源:http://commandstech.com/hadoop-error-java_home-is-not-set-and-could-not-be-found-in-hadoop-installation/

  

第2步:完成后,请使用Hadoop env文件,然后对其进行更新。

完成后,请停止守护程序并再次启动守护程序。

答案 10 :(得分:-1)

我在环境中解决了此问题,无需修改hadoop-env.sh

最好使用/bin/bash作为默认外壳而不是/bin/sh

请先检查以下内容:

  1. 您已经配置了Java和env(成功echo $JAVA_HOME
  2. 正确的配置hadoop

echo $SHELL在每个节点中,检查是否打印/bin/bash 如果不是vi /etc/passwd,请在用户名的末尾添加/bin/bash ref

  

Changing default shell in Linux

     

https://blog.csdn.net/whitehack/article/details/51705889

答案 11 :(得分:-8)

  • hadoop错误:未设置JAVA_HOME

以上错误是因为两个单词之间的空格。

例如:Java位于 C:\ Program Files \ Java - &gt; 程序文件之间的空格会导致上述问题。如果删除空格,则不会显示任何错误。