HADOOP Unable to load native-hadoop library for your platform解決方法


最初はCentOS 6.5*64にhadoop 2を配備する.6.0、起動時にWARN utilを提示する.NativeCodeLoader:Unable to load native-hadoop library for your platform...using builtin-java classes where applicable stackoverflowで調べてみましたが、最初はコンパイルの問題だと思っていましたが、後でよく調べてみましたが、コンパイルの問題ではありません.
[thread@thread 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 =>  (0x00007fffb1dff000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007ffb4eb1a000)
    libc.so.6 => /lib64/libc.so.6 (0x00007ffb4e785000)

根本的な問題はGLIBCバージョンにあることがわかりました.コンパイルが解決できるのは,再コンパイルされたGLIBCがローカルライブラリでサポートされているため,根本的な問題はここにある.問題が発生した根本的な原因を知って解決するのもそれに応じて容易になった.Glibcダウンロードアドレス対応バージョンのGlibc,tarを選択する.gzとtar.xzは圧縮フォーマットが異なるだけです
tar -xvf glibc+   ($glibc) -C       ($disPath)

次にglibcは$glibcに置き換えられ、解凍ターゲットパスは$disPathに置き換えられる.
cd $disPath
mkdir build
cd build
../$glibc/configure --prefix=/usr/lib64/$glibc --enable-add-ons

ソースコードに基づいて直接configureすることはできないのでbuildディレクトリを構築します.configure–prefixはできるだけむやみに変更しないでください.後でメンテナンスしやすいです.
-enable-add-onsはlibを更新します.これを選択すると、ダイナミックライブラリのロードを設定する必要はありません.
make
make install

インストールが完了したらcd/usr/lib 64/$glibcにアクセスできるはずですが、コンパイル後のダイナミックライブラリはここにあるはずです.ダイナミックライブラリはまだロードされておらず、最後にロードされます.export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/$glibc/lib
この時、もう一度見て
ldd libhadoop.so.1.0.0