在Linux中刚性设置JAVA_HOMEvariables

我试图用命令运行所有的hadoop守护进程

./start-all.sh 

来自主要主机群集。 由于执行几次而发出

 starting namenode, logging to /export/hadoop-1.0.1/libexec/../logs/hadoop--namenode-one.out 192.168.1.10: starting datanode, logging to /export/hadoop-1.0.1/libexec/../logs/hadoop-hadoop-datanode-myhost2.out 192.168.1.10: Error: JAVA_HOME is not set. 

甚至在虚拟机上执行到192.168.1.10命令的地址之后,它也发生了好几次

 hadoop@myhost2:~$ export JAVA_HOME=/opt/jdk1.7.0_06 

请告诉你如何硬性修复JAVA_HOMEvariables。

把行export JAVA_HOME=/path/to/java放在你的start-all.sh脚本的开头,那应该这样做。

$ vi ~/.bash_proflle

将此行追加到文件中

export JAVA_HOME=/opt/jdk1.7.0_06

这将对JAVA_HOME环境变量进行永久更改。

你也应该在hadoop-env.sh文件中设置JAVA_HOME 。 这是$HADOOP_INSTALL/hadoop/conf目录。 默认情况下,JAVA_HOME设置行被注释

hadoop-env.sh – 该文件包含Hadoop使用的一些环境变量设置。 您可以使用这些来影响Hadoop守护进程行为的某些方面,例如存储日志文件的位置,所使用堆的最大数量等。您需要在此文件中更改的唯一变量是JAVA_HOME

或者您可以将其添加到hadoop帐户中的以下文件中。

 ~/.bash_proflle