场景:有个Hadoop集群,有两个用户,各自都配有Hadoop,更改的端口,能正常启动,各自把hadoop的配置写在了~/.bashrc文件中。两个hadoop可以同时启动,并且运行wordcount程序正常。

问题:现在一个root账户,一个ericson账户,两个账户都配置了hadoop,当我用root账户启动命令行,并且用su ericson转到ericson账户下启动hadoop,会出现问题。(该问题应该和linux配置文件执行顺序机制有关)

解决:在Linux装软件,配置环境时,尽量要用当前用户登录命令行,有时候可能会需要重新开启命令行来加载更改的环境变量。

###补充

上面之所以不能su切换用户,主要是ericson的环境变量设置错了,没有覆盖root的用户环境变量,导致运行出错。还有种方法是用su -来切换用户,示例如下:

ericson里面没有设置HADOOP_YARN_HOME变量,而root里面设置了HADOOP_YARN_HOME变量为自己的hadoop路径,当ericson启动hadoop或运行hadoop时,就会读取该配置,由于hadoop的版本不一样,可能导致错误。