JAVA _Home未设置在Hadoop中

ayu*_*999 9 java installation hadoop

我是hadoop的初学者,并尝试在我的Ubuntu中安装和运行hadoop作为单节点集群.这是我的hadoop_env.sh中的JAVA_HOME

# The java implementation to use.
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386/
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"}
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,会出现以下错误 -

Starting namenodes on [localhost]
localhost: Error: JAVA_HOME is not set and could not be found.
localhost: Error: JAVA_HOME is not set and could not be found.
Starting secondary namenodes [0.0.0.0]
0.0.0.0: Error: JAVA_HOME is not set and could not be found.
Run Code Online (Sandbox Code Playgroud)

如何删除此错误?

小智 17

我调试了代码并发现即使在环境中设置了JAVA_HOME,该值也会丢失,因为在代码中进行了与其他主机的ssh连接,并且在start-dfs.sh中设置良好的JAVA_HOME变量变得未设置在hadoop-env.sh中.

这个问题的解决方案是在hadoop-env.sh中设置JAVA_HOME变量,它应该可以正常工作.


too*_*bee 15

我有同样的错误,并用土壤耆那教的评论解决了它,但为了使它更加清晰:hadoop-env.sh使用了一个表达式,如

export JAVA_HOME=${JAVA_HOME}
Run Code Online (Sandbox Code Playgroud)

如果您对JVM安装的路径进行硬编码,则可以正常工作

export JAVA_HOME=/usr/lib/jvm/java...
Run Code Online (Sandbox Code Playgroud)

环境变量的这个分辨率似乎失败了.硬编码为我解决了这个问题.


Ank*_*hag 5

在您的HADOOP_HOME/conf目录下,请更新该hadoop-env.sh文件.它有导出JAVA_HOME的条目.

在此文件中设置适当的JAVA_HOME应该可以解决您的问题.

  • 我把它更新为导出JAVA_HOME =/usr/lib/jvm/java-7-sun ..仍然是同样的错误 (2认同)

gri*_*ure 2

你正在加载hadoop_env.sh吗?您可能指的是 hadoop-env.sh(破折号而不是下划线 - 位于conf目录下)

顺便说一句,这是一个非常有用的快速安装指南:

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/