配置完hadoop启动的时候出现如下警告信息:
19/07/26 15:31:44 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
问题在哪里?有人说这是hadoop的预编译包是32bit的,运行在64bit上就会有问题。但是这个答案大多数时候都是错的。
如何验证64bit还是32bit?
1、进入hadoop安装目录
[root@zdh129 ~]# cd /opt/hadoop-2.7.3/lib/native/
2、用ldd命令查看依赖库
[root@zdh129 native]# ldd libhadoop.so.1.0.0
linux-vdso.so.1 => (0x00007fff9c3af000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f1660899000)
libjvm.so => not found
libc.so.6 => /lib64/libc.so.6 (0x00007f1660504000)
/lib64/ld-linux-x86-64.so.2 (0x0000003a08600000)
可以看到依赖的都是/lib64/的动态库,所以不是64位/32位问题。但是看到报错,libjvm.so找不到。
临时解决办法:
1、打开hadoop-env.sh文件
[root@zdh129 native]# vim /opt/hadoop-2.7.3/etc/hadoop/hadoop-env.sh
2、在hadoop-env.sh中给HADOOP_OPTS配置项增加
-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR
export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
3、重新格式化,并重启hdfs
[root@wkh11 hadoop]# hdfs namenode -format
[root@wkh11 hadoop]# start-dfs.sh
网友评论