致使這個錯的緣由: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
參考文章:日誌