致使这个错的缘由: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
参考文章:日志