在安裝好Hadoop後,每次輸入命令都會出現下面警告:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Stopping namenodes ...
提示hadoop不能加載本地庫。
可以到$HADOOP_HOME/lib/native
下,查看文件libhadoop.so.1.0.0,裏面會顯示Hadoop的位數,官網下載好的顯示是64位的,如下所示:
[hadoop@dxer hadoop-2.6.4]$ cd lib/native/
[hadoop@dxer native]$ ls
libhadoop.a libhadooppipes.a libhadoop.so libhadoop.so.1.0.0 libhadooputils.a libhdfs.a libhdfs.so libhdfs.so.0.0.0
[hadoop@dxer native]$ file libhadoop.so.1.0.0
libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=b3b5e812c2a91fa4b28aa33eb76dc6889d3b91e9, not stripped
[hadoop@dxer native]$
文件和操作系統都是64位的那爲什麼還會出現這樣的警告呢。肯定是少了什麼配置,沒讓庫文件加載進去。
只需要進行簡單配置即可。
配置如下:
- 首先在bashrc中加入如下配置:
vim ~/.bashrc
配置如下
export HADOOP_HOME=/home/hadoop/hadoop-2.6.4
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
- 使上面配置生效:
source ~/.bashrc
ok,再去執行啓動dfs/yarn或者運行hadoop相關命令的時候就不會再有上面的提示啦。