Hadoop 2.2.0 FAQ:Ubuntu 64環境における「Unable to load native-hadoop library for your platform」の問題


に質問


最近Hadoop(2.2.0)を学んで、1つのMapReduceの小さいプログラムを書くつもりでUbuntu 64ビットの環境の下で1本テストして、すべての環境の配置が終わった後に、実行する過程の中で、コンソールは以下の内容を出力します:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

の原因となる


ネットで検索したところ、次のような結論が出た.
“The reason you saw that warning is the native Hadoop library $HADOOP_HOME/lib/native/libhadoop.so.1.0.0 was actually compiled on 32 bit.”
Hadoopのnativeは32 bit環境でコンパイルされており、64 bit環境で実行すると問題があるため、hadoop 2.2.0のソースコードをダウンロードして64 bit環境で再コンパイルする必要がある

解決策


この問題を解決するにはhadoop 2を再コンパイルする必要がある.2.0のソースコードです.手順は次のとおりです.
(1)依存パッケージの構成:
apache-maven-3.0.5-bin.tar.gz (http://maven.apache.org/download.cgi)
findbugs-2.0.2.tar.gz (http://sourceforge.jp/projects/sfnet_findbugs/releases/)
protobuf-2.5.0.tar.gz (https://code.google.com/p/protobuf/downloads/list)
mavenおよびfindbugsは、解凍して/etc/profileで構成すればよいので、構成が終わったらsource/etc/profileを実行するのを忘れないでください.
protobufパッケージの解凍後にmake動作を実行する必要があります.コマンドは次のとおりです.
cd protobuf-2.5.0/
./configure
make
make check
make install


append below config into the/etc/profile file
<span style="color:#ff0000;">export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib</span>

2.cmakeを取り付ける
sudo apt-get install cmake
3 hadoop 2.2.0のソースファイルをダウンロードし、解凍してパッチを適用する
cd hadoop-2.2.0-src
wget https://issues.apache.org/jira/secure/attachment/12614482/HADOOP-10110.patch
patch -p0 < HADOOP-10110.patch

(3)コンパイル
mvn package -Pdist,native -DskipTests -Dtar