本问题已经有最佳答案,请猛点这里访问。
我正在尝试使用以下命令运行所有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_HOME变量。
可能与以下内容有关:stackoverflow.com/questions/2460633/
您还应该在hadoop-env.sh文件中设置JAVA_HOME。 在hadoop的$HADOOP_INSTALL/hadoop/conf目录中。 默认情况下,注释JAVA_HOME设置行
hadoop-env.sh - This file contains some environment variable settings
used by Hadoop. You can use these to affect some aspects of Hadoop
daemon behavior, such as where log files are stored, the maximum
amount of heap used etc. The only variable you should need to change
in this file is JAVA_HOME
或者您可以将其添加到hadoop帐户的以下文件中。
~/.bash_proflle
$ vi ~/.bash_proflle
将此行附加到文件
export JAVA_HOME=/opt/jdk1.7.0_06
这将永久更改JAVA_HOME环境变量。
将行export JAVA_HOME=/path/to/java放在start-all.sh脚本的开头,应该这样做。
但这只会仅对该脚本起作用,而不会全局
它应适用于从脚本启动的所有守护程序。
是的,但是对于从该脚本启动的守护程序,仅不适用于其他脚本。
的确如此,但是由于问题仅在于处理从该脚本启动的那些守护程序,因此将其本地化似乎更好。
+1进行本地化:)
hadoop-env.sh文件进入图片。