首页 > 代码库 > WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable(spark加载hadoop本地库的时候出现不能加载的情况要怎么解决呢?)

WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable(spark加载hadoop本地库的时候出现不能加载的情况要怎么解决呢?)

https://www.zhihu.com/question/23974067/answer/26267153

 

原文内容:

我64位机器,当时hadoop启动的时候出现这个问题是因为hadoop本身自带的本地库是32位的,我现在hadoop2.2.0已经替换了本地库为64位的了,并且编译spark的时候采用了相对应的版本:
SPARK_HADOOP_VERSION=2.2.0 SPARK_YARN=true ./sbt/sbt assembly
但是现在进入spark shell的时候依然最后会出现如下警告,有没有人成功解决了这个问题呢?我spark是0.9.1版本的,谢谢各位大神!


WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

 

 

 

原文回答,解决方案:

主要是jre目录下缺少了libhadoop.so和libsnappy.so两个文件。具体是,spark-shell依赖的是scala,scala依赖的是JAVA_HOME下的jdk,libhadoop.so  和  libsnappy.so  两个文件应该放到  $JAVA_HOME/jre/lib/amd64  下面。
这两个so:libhadoop.so和libsnappy.so。前一个so可以在HADOOP_HOME下找到,如hadoop\lib\native。第二个libsnappy.so需要下载一个snappy-1.1.0.tar.gz,然后./configure,make编译出来,编译成功之后在.libs文件夹下。
当这两个文件准备好后再次启动spark shell不会出现这个问题。


作者:Edward Lee
链接:https://www.zhihu.com/question/23974067/answer/26267153
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable(spark加载hadoop本地库的时候出现不能加载的情况要怎么解决呢?)