问题:在配置了免密码登录的hadoop集群中执行远程命令出现找不到此命令的错误。
执行命令为:xcall java -version,xcall(《自定义脚本执行远程命令-xcall》这个文章中有介绍此脚本)的原型为$>ssh hostname "java -version",出现如下错误:bash:java:command not found,错误返回码为-127
这个问题搞了半天才解决,后来看到网上的一个大牛的文章说ssh登录的时候如果参数带命令的话,是到远程主机执行的,有些环境变量是不会加载的,然后结合centos的man ssh文档,才找到了解决此问题的办法。
解决办法:
修改environment文件:[root@s100 ~]# vim /etc/environment
加入如下环境变量:
JAVA_HOME=/soft/jdk
HADOOP_HOME=/soft/hadoop
PATH=/soft/jdk/bin:/soft/hadoop/bin:/soft/hadoop/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
保存后,重新加载环境变量
[root@s100 ~]# source /etc/environment
之后再运行程序OK了。
hadoop也能正常运行了
转载请注明:MitNick » Centos 7 ssh远程连接主机执行脚本时环境变量找不到的问题, java hadoop环境变量找不到