Hadoop Could not load native gpl library异常解决
? 本博客属原创文章,转载请注明出处:http://guoyunsky.iteye.com/blogs/1237327?
??欢迎加入Hadoop超级群:?180941958
?
? ?完整异常:
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
?
? ?后来想下自己压根就没有装什么lzo,同时找到了这篇:http://comments.gmane.org/gmane.comp.java.hadoop.hbase.user/15776.验证了我的想法,根据里面的提示http://code.google.com/a/apache-extras.org/p/hadoop-gpl-compression/wiki/FAQ?redir=1一步步安装.命令如下:
? ? 1.先安装hadoop-gpl-compression
? ? ?1)下载(我一般都会进入自己的下载目录,命令:cd $HOME/Downloads,由你自己决定):
? ? ? ? ?wget http://hadoop-gpl-compression.googlecode.com/files/hadoop-gpl-compression-0.1.0-rc0.tar.gz
? ? ? 2)解压
? ? ? ? ?tar -xvf hadoop-gpl-compression-0.1.0-rc0.tar.gz
? ? ? 3)将解压好的hadoop-gpl-compression-0.1.0.jar移到你的hadoop/lib目录(我这里是$HADOOP_HOME/lib
,如果没有请设置$HADOOP_HOME,或者替换成你的hadoop目录)下:
? ? ? ? mv hadoop-gpl-compression-0.1.0/hadoop-gpl-compression-0.1.0.jar $HADOOP_HOME/lib/
? ? 4)把库文件拷贝到hadoop的本地库目录中
? ? ? mv hadoop-gpl-compression-0.1.0/lib/native/Linux-i386-32/* $HADOOP_HOME/lib/native/Linux-i386-32/ ?
? ? ? mv hadoop-gpl-compression-0.1.0/lib/native/Linux-amd64-64/* $HADOOP_HOME/lib/native/Linux-amd64-64/?
?
? 2.安装lzo类库
? ? ? 1)安装g++和gcc
? ? ? ? ? sudo apt-get install g++
? ? ? ? ? sudo apt-get install gcc
? ? ? 2)下载lzo
? ? ? ? ??wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz
? ? ? 3)解压
? ? ? ? ??tar -xvf lzo-2.03.tar.gz?
? ? ? 4)编译安装
? ? ? ? ? cd lzo-2.03
? ? ? ? ??sudo ./configure ?
? ? ? ? ? sudo make ?
? ? ? ? ? sudo make install?
?
? ? ?Eclipse调试相关源码时,如果还报以上错误,那有可能是Eclipse获取不到/usr/local/lib.有两种解决方法:
? ? ?一种是将/usr/local/lib放入你的环境变量.如: vi ~./bashrc,加入以下行:
? ? ?export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
? ? 然后通过命令启动Eclipse,也就是输入eclipse,当然前提是要你设置了Path.或者重启系统;
? ? 还有一种是将Native Library Location设置进你的工程,具体做法是.
? ? 右击你的工程->选择Properties->选择左边的Java Build Path->然后在右边的Libraries下找到hadoop-lzo-xxx.jar.
? ? 点击该jar,双击该jar下的Native Library Location,设置为/usr/local/lib即可.如此就无需重启系统之类的.但长期来看还是建议第一种方法,设置环境变量,省得每次都需要设置
?
? ??
???
?
?