Hadoop日记Day4---去除HADOOP_HOME is deprecated

时间:2022-08-16 13:16:42

去除hadoop运行时的警告

1. 档hadoop运行时,我们会看到如下图1.1所示的警告。

Hadoop日记Day4---去除HADOOP_HOME is deprecated

图 1.1

2. 虽然不影响程序运行,但是看到这样的警告信息总是觉得自己做得不够好。一步步分析,先看一下启动脚本start-all.sh的源码,执行命令cd  /usr/local/hadoop/bin目录下,执行命令more start-all.sh,脚本start-all.sh的源码如下图1.2所示。

Hadoop日记Day4---去除HADOOP_HOME is deprecated

图 1.2

3. 虽然我们看不懂shell脚本的语法,但是可以猜到可能和文件hadoop-config.sh有关,我们再看一下这个文件的源码。该文件特大,我们只截取最后一部分,见下图1.3所示。

Hadoop日记Day4---去除HADOOP_HOME is deprecated

图 1.3

4. 从图中的黑色框框中可以看到,脚本判断变量HADOOP_HOME_WARN_SUPPRESS和HADOOP_HOME的值,如果前者为空,后者不为空,则显示警告信息“Warning……”。所以是,我们在安装hadoop时,设置了环境变量HADOOP_HOME造成的。

5. 网上有的说新的hadoop版本使用HADOOP_INSTALL作为环境变量,我还没有看到源代码,并且担心其他框架与hadoop的兼容性,所以暂时不修改,那么只好设置HADOOP_HOME_WARN_SUPPRESS的值了。

修改配置文件/etc/profile(我原来一直在这里设置环境变量,操作系统是rhel6.3),增加环境变量HADOOP_HOME_WARN_SUPPRESS,如下图1.4所示。

Hadoop日记Day4---去除HADOOP_HOME is deprecated

图 1.4

6. 保存退出,再次启动hadoop,就不会出现警告信息了,如下图1.5所示。

Hadoop日记Day4---去除HADOOP_HOME is deprecated

图 1.5