Hadoop:«错误:JAVA_HOME未设置»

问题描述 投票:38回答:9

我正在尝试在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变量设置不正确吗?

linux hadoop ubuntu-11.04
9个回答
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来激活新的更改。


30
投票

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


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 >


7
投票

您可以添加.bashrc文件:

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

它会在您更新包时动态更改。


1
投票

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

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


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

0
投票

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

export JAVA_HOME=/usr/java/default

-1
投票

我在我的环境中解决了这个问题,没有修改hadoop-env.sh

你最好使用/bin/bash作为默认shell而不是/bin/sh

检查这些之前:

  1. 你已经配置了java和env(成功echo $JAVA_HOME
  2. 正确配置hadoop

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

Changing default shell in Linux

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


-8
投票
  • hadoop错误:未设置JAVA_HOME

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

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

© www.soinside.com 2019 - 2024. All rights reserved.