hdfs/hadoop을 처음 사용하고 hdfs 디렉토리에있는 파일을 압축하는 방법을 알아야합니다. hdfs : // sandbox : 8020/some/path.hdfs에서 java를 사용하여 파일을 압축하는 방법
나는
Path p = new Path("/my/path/test1.gz");
FSDataOutputStream os = fs.create(p);
GZIPOutputStream gzipOs = new GZIPOutputStream(new BufferedOutputStream(os));
Path filePath = file.getPath();
FSDataInputStream is = fs.open(filePath);
System.out.println("Writing gzip");
byte[] buffer = new byte[1024];
int len;
while((len= is.read(buffer)) != -1){
gzipOs.write(buffer, 0, len);
}
//close resources
is.close();
gzipOs.close();
을 시도했지만 작동하지 않습니다.
제안 사항? 미리 감사드립니다.
"작동하지 않는 것"보다 구체적 일 수 있습니까? – climbage
@ S.M.AlMamun hdfs에서 파일을 압축하려고하는 mapreduce를 사용하지 않습니다. – user3403657
@climbage. hdfs에 파일을 보관하려고합니다. "archive.bz2"에 보관하려고하는 test.doc 파일이 있습니다. "archive.bz2"를 만들 수 있지만 7zip에서 열면 "archive"가 포함됩니다. 압축을 풀고 이름을 "test.doc"로 바꾼다. hdfs에 아카이브를 만들려면 어떻게해야합니까? 나는 결국 gzip dirs를 tar 할 필요가있을 것이다. 그러나 단지 일하는 무엇인가 얻으려고 노력하고있다! – user3403657