我们在执行脚本start-all.sh启动Hadoop,或则操作HDFS时会出现警告信息,如下图:
这个警告虽不影响程序运行,但是看到这样的警告信息,总是觉得自己做的不够好,怎么去掉警告信息呢?
我们先来看看start-all.sh的源码,如下图:
注:虽然我们看不太懂Shell脚本的语法,但是我们可以猜到可能和文件hadoop-config.sh有关,我们再看一下hadoop-config.sh的源码,由于该文件过大,我们只截取重要部分,如下图:
问题原因:
从上图中开头的if判断中可以看出,脚本判断变量HADOOP_HOME_WARNING_SUPPRESS和HADOOP_HOME的值,如果HADOOP_HOME_SUPPRESS的值为空,而HADOOP_HOME的值不为空,那么就会出现警告信息。
我们在安装hadoop时,设置了环境变量HADOOP_HOME,而没有设置HADOOP_HOME_WARNING_SUPPRESS造成的。
解决方法:
网上说新的hadoop版本使用了HADOOP_INSTALL作为环境变量,我还没有看到源代码,并且担心其他框架和hadoop的兼容性,所以暂不修改HADOOP_HOME,那么只好设置HADOOP_HOME_WARING_SUPPRESS的值了。
修改配置文件/etc/profile,增加变量HADOOP_HOME_WARNING_SUPPRESS,如下图:
修改完之后保存,然后使用source /etc/profile命令刷新一下配置文件即可。