在配置好hadoop的环境之后,命令启动./start-all.sh发现经常出现这样的一个警告:

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

关于解决这个问题总结了一下方法:

按警告的描述是说  hadoop的native库导入失败,定位这个问题就是要看下native目录下的静态库 libhadoop.so.1.0.0文件,一般出现这个问题都是依赖包版本的过低导致不兼容问题。

1、因为网上有的说是linux系统是32位,libhadoop.so.1.0.0是64位,就会导致这个问题,那我们先来看一下系

[root@master sbin]# uname -r
2.6.-.el6.x86_64

在看一下libhadoop.so.1.0.0的版本

[root@master native]# file libhadoop.so.1.0.
libhadoop.so.1.0.: ELF -bit LSB shared object, x86-, version (SYSV), dynamically linked, not stripped

可以看到版本都是64位,不存在问题。

2、排除了第一个问题,那我们只能来查看一下依赖库的版本了

[root@master native]# ldd libhadoop.so.1.0.
./libhadoop.so.1.0.: /lib64/libc.so.: version `GLIBC_2.' not found (required by ./libhadoop.so.1.0.0)
linux-vdso.so. => (0x00007fff31efd000)
libdl.so. => /lib64/libdl.so. (0x00007f654dd25000)
libpthread.so. => /lib64/libpthread.so. (0x00007f654db07000)
libc.so. => /lib64/libc.so. (0x00007f654d775000)
/lib64/ld-linux-x86-.so. (0x00007f654e155000)

GLIBC_2.14的版本未找到,那我们接下来确认下glibc的系统库版本

[root@master sbin]# ldd --version
ldd (GNU libc) 2.12
Copyright (C) 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.
由 Roland McGrath 和 Ulrich Drepper 编写。

可以看到当前的版本是2.12,可以确认下GLIBC所支持的版本

由 Roland McGrath 和 Ulrich Drepper 编写。
[root@master sbin]# strings /lib64/libc.so.|grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_PRIVATE

最大支持到2.12版本,而我们hadoop中的版本是2.14,可以确定基本是这个问题造成的;那接下来的解决办法就是更新系统的CLIBC版本。

这里有GLIBC的官方版本  http://ftp.gnu.org/gnu/libc/

我们选择一个比2.12高的版本

wget  http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz 

接下来安装一下glibc-2.17.tar.gz

[root@master /]# cd /opt/
[root@master opt]# wget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.17.tar.gz
[root@master opt]# tar -zxvf glibc-2.17.tar.gz
[root@master opt]# cd glibc-2.17
[root@master glibc-2.17]#
[root@master glibc-2.17]# mkdir build
[root@master glibc-2.17]# cd build/
[root@master build]#
[root@master build]#../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
[root@master build]#make && make install

安装完成后再查一下CLIBC版本:

[root@master build]# strings /lib64/libc.so.|grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_2.
GLIBC_PRIVATE

已经支持到2.17了,然后再启动一下hadoop,发现那个警告消失了,证明我们的问题解决了。

[root@master sbin]# ./start-all.sh
Starting namenodes on [master]
Starting datanodes
Starting secondary namenodes [master]
Starting resourcemanager
Starting nodemanagers

  

最新文章

  1. python(30) 获取网页返回的状态码,状态码对应问题查询
  2. 用SVG绕过浏览器XSS审计
  3. ES6严格模式use strict下的保留字
  4. Content Providers详解
  5. iOS优化内存方法推荐
  6. KDE/QT与GNOME/GTK比较
  7. HTTPS原理(转)
  8. Fraction to Recurring Decimal leetcode
  9. Postgresql快速写入/读取大量数据(.net)
  10. LaTeX 各种命令,符号
  11. centos7后台服务部署jar包
  12. WPF效果(GIS三维续篇)
  13. 【python】安装py3-bencode 及小例程
  14. Android玩转百度地图Sha1获取正确姿势?
  15. DIV+CSS兼容解决DIV最大宽度和最小宽度问题
  16. 看病要排队--hdu1873
  17. PHP安全之register_globals (转)
  18. 一些漂亮的js库
  19. 为服务器设置固定IP地址
  20. java多线程-ReadWriteLock

热门文章

  1. Oracle之clob字段不能union的问题
  2. [转]OpenTK学习笔记(1)-源码、官网地址
  3. 【深入学习linux】git的使用
  4. Nginx+keepalived实现负载均衡高可用配置
  5. UDP用于保持大量终端的在线与控制,应用与业务则通过TCP去实现。这个和FTP服务控制与数据分离,采取不同的连接,有异曲同工之处 端口映射老化时间
  6. js---省略花括号{}的几种表达式
  7. C#实体类null自动转空字符串
  8. Sword 哈希表
  9. 品优购商城项目(六)CAS客户端与SpringSecurity集成
  10. k8s记录-Dockerfile详解