标签:
导致这个错的原因:
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
参考文章:
Unable to load native-hadoop library for your pla
标签:
原文地址:http://my.oschina.net/cjun/blog/483859