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

成功!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM