我刚开始学习hadoop(CentOS7),这里有一个关于环境变量的问题:
在我的虚拟机中,rxie是登录用户: HADOOP_CONF_DIR = /opt/hadoop/hadoop-2.7.2/etc/rxie
没有/opt/hadoop/hadoop-2.7.2/etc/rxie的路径 它应该是/opt/hadoop/hadoop-2.7.2/etc/hadoop
我试图找出变量的定义位置,以便我可以纠正它。 这就是我的想法:
bash-4.2# grep -r HADOOP_CONF_DIR ~/.*
/root/./.bashrc:export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
请注意HADOOP_CONF_DIR = $ HADOOP_HOME / etc / hadoop是正确的。
我不知道错误的HADOOP_CONF_DIR定义在哪里?
如果有人能够启发并提供修复,我将不胜感激,非常感谢。
答案 0 :(得分:3)
运行以下命令:
PS4='+ $BASH_SOURCE:$LINENO:' BASH_XTRACEFD=7 bash -xlic "" 7>trace.out
完成后,运行:
grep HADOOP_CONF_DIR trace.out
每次设置HADOOP_CONF_DIR
时,输出都会显示,设置它的文件以及该文件中的行号。
我们以.bashrc
文件中的内容为例:
$ grep HISTFILESIZE trace.out
++ /home/john1024/.bashrc:193:export HISTFILESIZE=20000
这表明~/.bashrc
的第193行设置为HISTFILESIZE
。
此命令启动bash
登录shell,并打开诊断程序。 PS4
变量设置诊断输出的前缀,使其包含文件名和行号。有关详细信息,请参阅here。
虽然不太可靠,但也可以尝试:
grep HADOOP_CONF_DIR ~/.bashrc ~/.bash_profile ~/.profile /etc/profile.d/* /etc/profile /etc/bashrc