一回のHadoop環境を構成し、そのような警告を見つける./start-all.sh開始するコマンドが頻繁に表示されます:
util.NativeCodeLoader WARN:ご使用のプラットフォーム用のネイティブHadoopのライブラリをロードできませんが...該当する場合に組み込み、Javaクラスを使用して
この問題の解決には方法を総括:
警告で説明したように問題を見つけ、ネイティブHadoopのライブラリをインポートすることができなかったと言ってディレクトリ内のネイティブファイルlibhadoop.so.1.0.0静的ライブラリを見ている、この問題は、一般的にパッケージのバージョンに依存している低すぎる鉛非互換性に問題。
1、インターネットので、いくつかのLinuxシステムが32ビットである、libhadoop.so.1.0.0は64で、それはこの問題を引き起こすだろうと言う、我々は最初の行を見て
[ルート@マスターsbinに]#1のuname - rを 2.6に。32 - 279 .el6.x86_64
libhadoop.so.1.0.0バージョンを見に
[ルート@マスターネイティブ]#ファイルlibhadoop.so。1.0。0 libhadoop.so。1.0。0:ELF 64ビットLSB共有オブジェクト、X 86- 64、バージョン1(SYSV)、動的にリンクされ、ストリッピングされません
あなたはバージョンは64ビット、問題はないです見ることができます。
2、最初の質問を除いて、我々は依存ライブラリのバージョンを見てみることができます
[ルート@マスターネイティブ]#1のLDD libhadoop.so。1.0。0 。/libhadoop.so。1.0。0:/lib64/libc.so。6:バージョン`GLIBC_2。14 " (./libhadoop.so.1.0.0で必要とされる)が見つかりません linux-vdso.so。1 =>(0x00007fff31efd000 ) libdl.so。2 => /lib64/libdl.so。2(0x00007f654dd25000 ) libpthread.so。0 => /lib64/libpthread.so。0(0x00007f654db07000 ) libc.so. 6 => /lib64/libc.so。6(0x00007f654d775000 ) / lib64に/ LD-Linuxベースx86ベース64の.so。2(0x00007f654e155000)
GLIBC_2.14バージョンが見つからない場合、我々はそれをシステムライブラリglibcのバージョンを確認しようとしています
[ルート@マスターsbinに]#のLDD - バージョン LDD(GNUのlibcの)2.12 著作権(C)2010 Free Software Foundationが、株式会社 これはあるフリーソフト。ソース参照のためのコピー条件を。ありませんNO 保証は、ないため特定の目的に対する商品性や適合。 由ローランド・マクグラス和ウルリック・ドレパー编写。
あなたは、現在のバージョンを確認することができ、それが次のバージョンは、GLIBCをサポートしていることが確認された、2.12であります
由ローランド・マクグラス和ウルリック・ドレパー编写。 [ルート@マスターsbinに]#文字列 /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
バージョン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
[ルート@マスター/]#のCDは/ opt / [ルート@マスターOPT]#wgetのはhttp:// ftp.gnu.org/pub/gnu/glibc/glibc-2.17.tar.gz [ルート@マスターOPT]#タール-zxvf glibc- 2.17 .tar.gzの [ルート@マスターOPT]#には、CDのglibc - 2.17 [ルート@マスターのglibc - 2.17 ]# [ルート@マスターのglibc - 2.17 ]#1は、mkdirビルド [ルート@マスターのglibc - 2.17 ]#のCD /構築 [ルート@マスタービルド]# [ルート@マスタービルド]#を... /設定--prefix =は/ usr --disable-プロファイル--enable-アドオン--with-のヘッダー=は/ usr /含めます- -binutilsを=は/ usr / binに [ルート@マスタービルド] #make && make installを
インストールが完了したらチェックCLIBCバージョンです:
[ルート@マスタービルド]#文字列が/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_2。15 GLIBC_2。16 GLIBC_2。17 GLIBC_PRIVATE
2.17に支持されており、それがHadoopを開始している、私は私達の問題が解決されることを証明するために、警告が消えたことがわかりました。
./start-all.sh [ルート@マスターsbinに]# [マスター]にnamenodesを開始 datanodes開始 二namenodesを開始し、[マスター] のResourceManagerを開始 nodemanagersを開始