zoukankan      html  css  js  c++  java
  • Hadoop安装—— WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platf

    今天在安装hadoop完成测试创建用户目录失败在网上找到了原因记录一下原文地址 http://blog.csdn.net/l1028386804/article/details/51538611

    配置完hadoop启动运行的时候出现如下警告信息:

    WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 

    问题在哪里?有人说这是hadoop的预编译包是32bit的,运行在64bit上就会有问题。但是这个答案大多数时候都是错的。

    如何验证64bit还是32bit?

    进入hadoop安装目录

    /usr/local/hadoop-2.5.2/lib/native 
    ldd libhadoop.so.1.0.0  

    会输出如下信息:

    ./libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./libhadoop.so.1.0.0)  
            linux-vdso.so.1 =>  (0x00007fff369ff000)  
            libdl.so.2 => /lib64/libdl.so.2 (0x00007f3caa7ea000)  
            libc.so.6 => /lib64/libc.so.6 (0x00007f3caa455000)  
            /lib64/ld-linux-x86-64.so.2 (0x00007f3caac1b000) 
    

      可以看到依赖的都是/lib64/的动态库,所以不是64位/32位问题。但是看到报错,GLIBC_2.14找不到,现在检查系统的glibc库,  ldd --version即可检查

    输入命令:

    ldd --version  

    会输出如下信息:

    ldd (GNU libc) 2.12  
    Copyright (C) 2010 Free Software Foundation, Inc.  
    This is free software; see the source for copying conditions.  There is NO  
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
    Written by Roland McGrath and Ulrich Drepper. 

    原来系统预装的glibc库是2.12版本,而hadoop期望是2.14版本,所以打印警告信息。

    现在有两个办法,重新编译glibc.2.14版本,安装后专门给hadoop使用,这个有点危险。

    第二个办法直接在log4j日志中去除告警信息。在//usr/local/hadoop-2.5.2/etc/hadoop/log4j.properties文件中添加

    log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR  
  • 相关阅读:
    Spring配置多个数据源
    虚拟机内存结构
    Java中sleep,wait,yield,join的区别
    Java的四种引用方式
    Java 中的泛型详解-Java编程思想
    Java RTTI和反射
    linux 分析java 线程状态
    小容量的byteBuffer 读取大文本
    @Conditional 原理
    替换字符串占位符
  • 原文地址:https://www.cnblogs.com/xzjf/p/8596766.html
Copyright © 2011-2022 走看看