如果没有 -Djava.library.path=/opt/mapr/hadoop/hadoop-0.20.2/lib/native/Linux-amd64-64/ 作为运行 Java 的参数,我会收到以下错误,
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
这是什么意思?使用基于 shell 的速度会慢吗?我应该解决这个问题吗?我应该关心这个警告吗?
仅供参考,此错误(或 UnspecifiedLinkError)可以通过以下任一方法修复,
- 有关使用 MapR 分发设置 java.library.path - rhive.connect() 问题的详细信息,请参阅此答案
在文件 hadoop-env.sh 中添加以下行
导出 HADOOP_CLIENT_OPTS=-Djava.library.path=$HADOOP_HOME/lib/native/Linux-amd64-64/
谢谢您的帮助。