Java を実行するための引数として -Djava.library.path=/opt/mapr/hadoop/hadoop-0.20.2/lib/native/Linux-amd64-64/ を指定しないと、次のエラーが発生します。
2013-11-13 15:23:29,414 WARN pool-3-thread-3 org.apache.hadoop.util.NativeCodeLoader Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2013-11-13 15:23:29,414 INFO pool-3-thread-3 org.apache.hadoop.security.JniBasedUnixGroupsMappingWithFallback Falling back to shell based
これは何を意味するのでしょうか?シェルベースを使用すると遅くなりますか? これを修正する必要がありますか?この警告を気にする必要がありますか?
参考までに、このエラー (または UnspecifiedLinkError) は、次のいずれかで修正できます。
- java.library.path の設定の詳細については、この回答を参照してください - MapR ディストリビューションに関する rhive.connect() の問題
ファイル hadoop-env.sh に次の行を追加します。
export HADOOP_CLIENT_OPTS=-Djava.library.path=$HADOOP_HOME/lib/native/Linux-amd64-64/
助けてくれてありがとう。