2015-01-20 3 views
0

나는 .gz 파일을 HDFS에 업로드했으며 그 파일의 내용을 추출하여 HDFS의 같은 디렉토리에 넣으려고합니다. 이것은 내가 노력 코드입니다 :HDFS의 압축 파일 추출

final String uri = "hdfs://localhost:8020/user/input1/output.gz"; 
    Path pt=new Path(uri); 
    FileSystem fs = FileSystem.get(new Configuration()); 

    Configuration conf = new Configuration(); 
    CompressionCodecFactory factory = new CompressionCodecFactory(conf); 
    CompressionCodec codec = factory.getCodec(pt); 

    if(codec == null){ 
     System.err.println("No Codec found !!!"); 
     System.exit(1); 
    } 

    String outputUri = CompressionCodecFactory.removeSuffix(uri, codec.getDefaultExtension()); 
    InputStream in = null; 
    OutputStream out = null; 
    try { 
     in = codec.createInputStream(fs.open(pt)); 
     out = fs.create(new Path(outputUri)); 
    } finally{ 
     IOUtils.closeStream(in); 
     IOUtils.closeStream(out); 
    } 

이 파일의 압축을 푼지고 있지만 내용은 0 B이다. 발생한 문제가 어디에 있는지 알려주십시오.

답변

1

데이터를 복사하는 것을 잊어 버렸습니다.

IOUtils.copyBytes(...) 
+0

오 ... 내 실수 :( – user182944