今天遇到一个错误,在本地往Hadoop写文件的时候报了一个错误:
SequenceFile doesn't work with GzipCodec without native-hadoop code!
SequenceFile有个判断会抛出这个exception
private static Writer createWriter(Configuration conf, FSDataOutputStream out, Class keyClass, Class valClass, boolean compress, boolean blockCompress, CompressionCodec codec, Metadata metadata) throws IOException { if (codec != null && (codec instanceof GzipCodec) && !NativeCodeLoader.isNativeCodeLoaded() && !ZlibFactory.isNativeZlibLoaded(conf)) { throw new IllegalArgumentException("SequenceFile doesn't work with " + "GzipCodec without native-hadoop code!"); }
通过这段代码可以测试这个错误。
import org.apache.hadoop.io.compress.zlib.ZlibCompressor; public class MyTester { public static void main(String[] args) { new ZlibCompressor(); } }
如何避免?
有两种解决方案:
1. 把hadoop.native.lib设置为false
2. 把/duitang/dist/sys/hadoop-1.2.1/lib/native/Linux-amd64-64/*下的so文件copy到/duitang/dist/sys/java/jre/lib/amd64
相关推荐
Hadoop 64位本地库,内部包含2.4、 2.5、2.6、2.7几个不同版本,可以根据需要选择解压使用。...hadoop-native-64-2.4.1.tar hadoop-native-64-2.5.2.tar hadoop-native-64-2.6.0.tar hadoop-native-64-2.7.0.tar
Centos64 位 hadoop 编译后的 本地lib。
解决本地调试Hadoop 异常。 org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z Hadoop源码_NativeIO.java
2.自己安装搜索“编译64位的hadoop 2.4.1”参考:http://hadoop.apache.org/docs/r2.3.0/hadoop-project-dist/hadoop-common/NativeLibraries.html The native hadoop library is written in ANSI C and is built ...
安装hadoop启动之后总有警告:Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 原因: Apache提供的hadoop本地库是32位的,而在64位的服务器上就会有问题...
hadoop-native-64-2.4.0.tar 解决运行hadoop 警告:WARN util.NativeCodeLoader: Unable to load native-hadoop
Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 1. 下载文件native.rar 并解压 2. 用SecureFX 上传, 替换native目录下文件,选择二进制文件上传。 3. ...
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源代码重新编译, 但中间需要下载安装...
Native Hadoop3.2.1 Library 64位编译,...Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通过本地库,Hadoop可以更加高效地执行某一些操作。
macOS 下编译的hadoop-3.1.3源码所得的native库,可解决mac系统安装hadoop因缺失native库引起的报错
macOS下使用hadoop2.8.1时, 执行hadoop fs 命令(如:hadoop fs -ls /tmp/input)会提示: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platfo
hadoop+snappy 64linux为机器下编译生成native包
编译环境:centos 6 + hadoop-2.7.2 +jdk1.8.0_152...含snappy
在安装hadoop时如果遇到WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform这个错误,请下载该文件放到hadoop目录下,Mac中放到libexec目录下。
hadoop 64位编译后的成果,native目录 libhadoop.a libhadoop.so libhadoop.so.1.0.0 libhadooppipes.a libhadooputils.a libhdfs.a libhdfs.so libhdfs.so.0.0.0
mac下Hadoop native library,用于解决报错:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable。再次说明,本版本只适用于mac ...
解决unable to load native library的问题 mac brew install hadoop方式安装的hadoop没有lib文件夹 官方下载的hadoop包是32位的在64位机器需要编译后才可以 将lib文件放到hadoop目录中即可
hadoop 2.4.1 64位native包