Linux的环境变量可在多个文件中配置,如
/etc/profile,/etc/profile.d/*.sh,~/.bashrc,~/.bash_profile等,下面说明上述几个文件之间的关系和区别
bash的运行模式可分为login shell和non-login shell
例如,我们通过终端(例如)
,输入用户名、密码,登录系统之后,得到就是一个login shell
;而当我们执行以下命令ssh hadoop103
命令,在hadoop103执行命令的就是一个non-login shell
所以建议在/etc/profile.d/
下以用root
用户新建my_env.sh
文件,专门存放自配置软件的环境变量。这样不管是哪种方式登录的用户,都能使用到环境变量
# JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
# HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
# HIVE_HOME
export HIVE_HOME=/opt/module/hive-3.1.2
export PATH=$PATH:$HIVE_HOME/bin
# KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
# SPARK_HOME
export SPARK_HOME=/opt/module/spark
export PATH=$PATH:$SPARK_HOME/bin
# HBASE_HOME
export HBASE_HOME=/opt/module/hbase
export PATH=$PATH:$HBASE_HOME/bin
# PHOENIX_HOME
export PHOENIX_HOME=/opt/module/phoenix
export PHOENIX_CLASSPATH=$PHOENIX_HOME
export PATH=$PATH:$PHOENIX_HOME/bin
# FLINK_HOME
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath` # `代表执行里面的命令,前提是配置了hadoop的环境变量
激活
source /etc/profile.d/my_env.sh