zoukankan      html  css  js  c++  java
  • hadoop 2.x安装:不能加载本地库 解决libc.so.6 version GLIBC_2.14 not found问题

    试图运行hadoop,提示"libc.so.6: version `GLIBC_2.14' not found",原因是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的:

    17/03/12 08:29:24 DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: /home/grid2/hadoop/hadoop-2.7.2/lib/native/libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/grid2/hadoop/hadoop-2.7.2/lib/native/libhadoop.so.1.0.0)
    17/03/12 08:29:24 DEBUG util.NativeCodeLoader: java.library.path=/home/grid2/hadoop/hadoop-2.7.2/lib/native
    17/03/12 08:29:24 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    

    查看系统glibc支持的版本

    [grid2@tiny1 hadoop-2.7.2]$ strings /lib64/libc.so.6 |grep GLIBC_
    GLIBC_2.2.5
    GLIBC_2.2.6
    GLIBC_2.3
    GLIBC_2.3.2
    GLIBC_2.3.3
    GLIBC_2.3.4
    GLIBC_2.4
    GLIBC_2.5
    GLIBC_2.6
    GLIBC_2.7
    GLIBC_2.8
    GLIBC_2.9
    GLIBC_2.10
    GLIBC_2.11
    GLIBC_2.12
    GLIBC_PRIVATE
    

    我们可以看到最高的版本是GLIBC_2.12,没有GLIBC_2.14。我们在此解决一下。

    注意,安装GLIBC很有可能失败,因此建议备份虚拟机状态

    1. glibc下载
    The GNU C Library (glibc) 下载源代码。我下载的版本是2.14,链接地址

    安装依赖包下载并解压:

    [root@tiny1 lib]# yum install svn autoconfautomake libtool cmake ncurses-devel openssl-devel gcc*
    [root@tiny1 lib]# cd /usr/local/lib
    [root@tiny1 lib]# wget -c http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
    [root@tiny1 lib]# tar -zxvf glibc-2.14.tar.gz
    

    2. 在glibc源码目录建立构建目录

    [root@tiny1 lib]# cd glibc-2.14
    [root@tiny1 glibc-2.14]# mkdir build && cd build
    

    3.运行configure配置,安装

    [root@tiny1 build]# ../configure --prefix=/opt/glibc-2.14
    [root@tiny1 build]# make
    [root@tiny1 build]# sudo make install
    

    4.配置

    [root@tiny1 grid2]# cp  /etc/ld.so.c* /opt/glibc-2.14/etc/
    cp: overwrite `/opt/glibc-2.14/etc/ld.so.cache'? y
    cp: overwrite `/opt/glibc-2.14/etc/ld.so.conf'? y
    cp: omitting directory `/etc/ld.so.conf.d'
    [root@tiny1 grid2]# ln -sf /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
    

    5.查看版本库的支持

    [root@tiny1 grid2]# strings /lib64/libc.so.6 | grep GLIBC
    GLIBC_2.2.5
    GLIBC_2.2.6
    GLIBC_2.3
    GLIBC_2.3.2
    GLIBC_2.3.3
    GLIBC_2.3.4
    GLIBC_2.4
    GLIBC_2.5
    GLIBC_2.6
    GLIBC_2.7
    GLIBC_2.8
    GLIBC_2.9
    GLIBC_2.10
    GLIBC_2.11
    GLIBC_2.12
    GLIBC_2.13
    GLIBC_2.14
    GLIBC_PRIVATE
    [root@tiny1 grid2]# su grid2
    [grid2@tiny1 ~]$ hadoop/hadoop-2.7.2/sbin/start-all.sh
    

    成功!

  • 相关阅读:
    编码以及⼩知识点补充
    基本数据类型(dict)
    基本数据类型(list,tuple)
    python基础
    Eclipse使用技巧
    条件与(&&)和逻辑与(&)以及条件或(||)和逻辑或(|)区别
    到底怎么样才叫看书?——Tony Zhao's
    Jsp servlet 值传递。。
    (06)odoo报表
    (05)odoo数据库和业务操作
  • 原文地址:https://www.cnblogs.com/erygreat/p/7223829.html
Copyright © 2011-2022 走看看