答えは次のとおりです... 64ビットCentOS 6.6にtarballからHadoop 2.6をインストールしました。実際、Hadoopのインストールには、ビルド済みの64ビットネイティブライブラリが付属しています。私のインストールでは、ここにあります:
/opt/hadoop/lib/native/libhadoop.so.1.0.0
そして私はそれが64ビットであることを知っています:
[hadoop@VMWHADTEST01 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 => (0x00007fff43510000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f9be553a000)
libc.so.6 => /lib64/libc.so.6 (0x00007f9be51a5000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9be5966000)
残念ながら、「このライブラリは32ビットまたは64ビットなのか」に焦点を当てていたので、私は真っ直ぐに答えて、私を真正面から見つめていました。
`GLIBC_2.14' not found (required by ./libhadoop.so.1.0.0)
だから、教訓は学んだ。とにかく、残りは少なくとも警告を抑制することができるように私を導いた。したがって、私は続けて、他の回答で推奨されているすべてのことを行い、HADOOP_OPTS環境変数を使用してライブラリパスを提供しましたが、役に立ちませんでした。だから私はソースコードを見ました。エラーを生成するモジュールは、ヒント(util.NativeCodeLoader)を通知します。
15/06/18 18:59:23 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
だから、ここに行ってそれが何をするかを見てください:
http://grepcode.com/file/repo1.maven.org/maven2/com.ning/metrics.action/0.2.6/org/apache/hadoop/util/NativeCodeLoader.java/
ああ、デバッグレベルのログがいくつかあります。さらにヘルプが表示されるかどうかを確認します。これは、$ HADOOP_CONF_DIR / log4j.propertiesファイルに次の行を追加することによって行われます。
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=DEBUG
次に、元の警告を生成するコマンド(stop-dfs.shなど)を実行して、次のようにしました。
15/06/18 19:05:19 DEBUG util.NativeCodeLoader: Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: /opt/hadoop/lib/native/libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/hadoop/lib/native/libhadoop.so.1.0.0)
そして、答えはデバッグメッセージのこのスニペットで明らかにされます(前のlddコマンドが私に教えようと「試みた」同じこと:
`GLIBC_2.14' not found (required by opt/hadoop/lib/native/libhadoop.so.1.0.0)
GLIBCのどのバージョンを持っていますか?簡単なトリックは次のとおりです。
[hadoop@VMWHADTEST01 hadoop]$ ldd --version
ldd (GNU libc) 2.12
OSを2.14にアップデートできません。唯一の解決策は、私のOS上のソースからネイティブライブラリをビルドするか、警告を抑制して今のところ無視することです。私は今のところ、迷惑な警告を抑制することを選択しました(ただし、将来ソースからビルドする予定です)、デバッグメッセージを取得するために使用したのと同じロギングオプションを使用して購入します。
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
オープンソースソフトウェアの大きな利点は、いくつかの簡単な論理的な手順を踏めば、このことを理解できるということを他の人が理解できるようになることを願っています。