Unable to load native-hadoop library for your pla

杀马特。学长 韩版系。学妹 提交于 2019-11-30 06:34:15

导致这个错的原因:

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!