我是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"}
但是当我运行它时,会出现以下错误 -
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.
如何删除此错误?
在您的HADOOP_HOME/conf目录下,请更新该hadoop-env.sh
文件.它有导出JAVA_HOME的条目.
在此文件中设置适当的JAVA_HOME应该可以解决您的问题.
我有同样的错误,并用土壤耆那教的评论解决了它,但为了使它更加清晰:hadoop-env.sh使用了一个表达式,如
export JAVA_HOME=${JAVA_HOME}
如果您对JVM安装的路径进行硬编码,则可以正常工作
export JAVA_HOME=/usr/lib/jvm/java...
环境变量的这个分辨率似乎失败了.硬编码为我解决了这个问题.
我调试了代码并发现即使在环境中设置了JAVA_HOME,该值也会丢失,因为在代码中进行了与其他主机的ssh连接,并且在start-dfs.sh中设置良好的JAVA_HOME变量变得未设置在hadoop-env.sh中.
这个问题的解决方案是在hadoop-env.sh中设置JAVA_HOME变量,它应该可以正常工作.