Unable to load native-hadoop library for your pla

导致这个错的原因:

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

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

确定错误的原因:

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

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

解决方法:找到合适的native lib

1.如果是apache的hadoop,则直接重新编译hadoop,编译方法网上很多。

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下。

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本地库与系统版本不一致引起的错误解决方法

你可能感兴趣的:(Unable to load native-hadoop library for your pla)