Hadoop native libraries에서 load할 수 없는 문제를 기록합니다.

1352 단어 hadoop
오늘 Hadoop에 로컬 파일을 쓰는 동안 오류가 발생했습니다.
SequenceFile doesn't work with GzipCodec without native-hadoop code!
 
Sequence File에서 이 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. 하두프를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로

좋은 웹페이지 즐겨찾기