本博客属原创文章,转载请注明出处:http://guoyunsky.iteye.com/blogs/1237327
欢迎加入Hadoop超级群: 180941958
完整异常:
11/11/07 10:15:02 ERROR lzo.GPLNativeCodeLoader: Could not load native gpl library java.lang.UnsatisfiedLinkError: no gplcompression in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738) at java.lang.Runtime.loadLibrary0(Runtime.java:823) at java.lang.System.loadLibrary(System.java:1028) at com.hadoop.compression.lzo.GPLNativeCodeLoader.<clinit>(GPLNativeCodeLoader.java:32) at com.hadoop.compression.lzo.LzoCodec.<clinit>(LzoCodec.java:71) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247) at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:943) at org.apache.hadoop.io.compress.CompressionCodecFactory.getCodecClasses(CompressionCodecFactory.java:89) at org.apache.hadoop.io.compress.CompressionCodecFactory.<init>(CompressionCodecFactory.java:134) at com.twitter.elephantbird.mapreduce.input.LzoRecordReader.initialize(LzoRecordReader.java:61) at com.twitter.elephantbird.mapreduce.input.LzoBinaryB64LineRecordReader.initialize(LzoBinaryB64LineRecordReader.java:79) at org.apache.hadoop.mapreduce.lib.input.DelegatingRecordReader.initialize(DelegatingRecordReader.java:80) at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.initialize(MapTask.java:450) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:645) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:322) at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:210) 11/11/07 10:15:02 ERROR lzo.LzoCodec: Cannot load native-lzo without native-hadoop 11/11/07 10:15:02 WARN mapred.LocalJobRunner: job_local_0001 java.lang.RuntimeException: native-lzo library not available at com.hadoop.compression.lzo.LzopCodec.createDecompressor(LzopCodec.java:91) at com.hadoop.compression.lzo.LzopCodec.createInputStream(LzopCodec.java:76) at com.twitter.elephantbird.mapreduce.input.LzoRecordReader.initialize(LzoRecordReader.java:71) at com.twitter.elephantbird.mapreduce.input.LzoBinaryB64LineRecordReader.initialize(LzoBinaryB64LineRecordReader.java:79) at org.apache.hadoop.mapreduce.lib.input.DelegatingRecordReader.initialize(DelegatingRecordReader.java:80) at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.initialize(MapTask.java:450) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:645) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:322) at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:210)
这里要感谢google,但搜索不是那么容易.网上一些解决方法并不全面.我这里整理下.
首先搜到的是http://p-x1984.iteye.com/blog/1157145,里面说是JDK版本原因,要将32位的JDK改成64位. 于是我输入命令查看下JDK版本:java -version.(你可以先通过uname -a查看你的操作系统位数)
得到的结果发现已经是64位,结果如下:
java version "1.6.0_26"
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即可.如此就无需重启系统之类的.但长期来看还是建议第一种方法,设置环境变量,省得每次都需要设置
更多技术文章、感悟、分享、勾搭,请用微信扫描:
相关推荐
Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 1. 下载文件native.rar 并解压 2. 用SecureFX 上传, 替换native目录下文件,选择二进制文件上传。 3. ...
安装hadoop启动之后总有警告:Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 原因: Apache提供的hadoop本地库是32位的,而在64位的服务器上就会有问题...
编译环境:centos 7 + hadoop-2.7.2 +jdk1.8.0_152...含snappy,里面有几个文件是软连接,是指向当前文件夹的文件的,如果失效自己重新软连接一下
在apahe下载的hadoop的本地库是32位,需要64的需要自己编译,这是我编译好的hadoop64本地库,欢迎下载
hadoop2.7.6本地运行需要的jar包和报错处理,有winutils.exe,libwinutils.lib,和NativeIO
搭建hadoop 环境时遇到启动异常告警问题 “WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable” 上来不多说,百度收集些相关...
hadoop 2.5.2 64位native包
mac下Hadoop native library,用于解决报错:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable。再次说明,本版本只适用于mac ...
hadoop 3.0.0 或者其他版本 报错Unable to load native-hadoop library时,放到c:/system32就可以
必须将此jar包放在org.apache.hadoop.io包下,否则无法正常覆盖使用
解决unable to load native library的问题 mac brew install hadoop方式安装的hadoop没有lib文件夹 官方下载的hadoop包是32位的在64位机器需要编译后才可以 将lib文件放到hadoop目录中即可
Hadoop 2.2.0版本中在64为linux系统上运行所需要的native库文件。需要时用此native文件夹覆盖Hadoop 2.2.0中native文件夹即可。
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Found 2 items 解决方法是下载hadoop源代码重新编译, 但中间需要下载安装...
hadoop2.8.1 64bit native 编译
hadoop 2.4.1 64位native包
14/01/27 10:52:34 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Starting namenodes on [Java HotSpot(TM) 64-Bit ...
macOS 下编译的hadoop-3.1.3源码所得的native库,可解决mac系统安装hadoop因缺失native库引起的报错
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 官网上源码hadoop2.7.2,64位机上编译的,CentOS6.6 64位亲测。
解决本地调试Hadoop 异常。 org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
WARN org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable 在网上查了一下发现Apache官网提供的是32位编译的,在64...