Unable to load native-hadoop library for your pla

致使这个错的缘由:shell

1.hadoop/lib/native/本地库不存在。apache

2.hadoop/lib/native/本地库与当前操做系统的版本位数不一致。centos

肯定错误的缘由:app

1.查看hadoop/lib/native是否存在。oop

2.设置hadoop的日记级别位debug,在环境变量中添加:export HADOOP_ROOT_LOGGER=DEBUG,console,重启hadoop后,仔细观察日志,看看究竟是native lib没找到仍是版本不一致。spa

解决方法:找到合适的native lib操作系统

1.若是是apache的hadoop,则直接从新编译hadoop,编译方法网上不少。.net

2.若是是cloudera的hadoop,则找到tar.gz版本的rpm包(系统、版本都需对应,http://archive.cloudera.com/cdh4/,找到你的的操做系统,centos和rhel归一类,我找的是http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/4.7.0/RPMS/x86_64/hadoop-2.0.0+1604-1.cdh4.7.0.p0.17.el6.x86_64.rpm文件),而后用压缩软件打开rpm,提取里面的lib/native文件,放到hadoop的lib/native下。debug

rm libhadoop.so libsnappy.so libsnappy.so.1 #移除3个18K大小的软连接,可能失效了
ln -s libhadoop.so.1.0.0 libhadoop.so #从新连接这三个文件
ln -s libsnappy.so.1.1.3 libsnappy.so.1
ln -s libsnappy.so.1.1.3 libsnappy.so

参考文章:日志

如何获取Hadoop Native Lib

hadoop本地库与系统版本不一致引发的错误解决方法

相关文章
相关标签/搜索