最開始的時候碰到這種問題,是在hadoop003上配置了jdk1.8, 在hadoop002上執行ssh hadoop003 java -version提示沒有命令,先ssh hadoop003然后執行java -version則沒有問題后來執行分發腳本時也碰到過這種問題,如果分步執行,先ssh到主機,然后執行命令就沒有問題,然而直接ssh + 主機 + 命令就會報錯,百度之后發現是ssh遠程執行命令時加載的環境文件是~/.bashrc.所以解決的思路就是在~/.bashrc中添加需要的環境變量即可,后來又研究了下發現和登錄模式有關請參考https://blog.csdn.net/whitehack/article/details/51705889
1 #java 2 export JAVA_HOME=/opt/module/jdk1.8.0_181 3 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 4 export PATH=$JAVA_HOME/bin:$PATH 5
6 #hadoop 7 export HADOOP_HOME=/opt/module/hadoop-3.1.1
8 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 9 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
10 export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
11
12 #myqsl 13 export PATH=$PATH:/usr/local/mysql/bin