此问题的缘由一般来说有两种
- hadoop 2.6 及之前的版本官方提供的二进制包本地库多数都是32-bit的,而现在服务器基本都是64bit,所以存在这个问题,这样一般解决办法是与服务器相同的os环境下 安装一般类库,然后重新编译hadoop
- hadoop 2.6版本之后官方本身提供的安装包都是64bit 编译的,而此时 运行 hadoop checknative -a 发现还是报错的话,很可能是服务器自带的glibc 等编译库版本过低
以上问题的查看具体原因查找可以按照如下步骤调试:
-
$ export HADOOP_ROOT_LOGGER=DEBUG,console 将脚本信息临时更改为debug 级别,console 输出
-
运行 hadoop checknative -a 查看输出信息error
假设是 glibc 版本过低,升级glibc 版本即可
例如:centos 6 os 中download glibc-2.14 的tar包后解压进入
mkdir build && cd build/
-
export CFLAGS="-g -O2"
3)../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
4)make && make install -k -i
以上只是简要说明,具体情况根据输出log进行调试~
网友评论