HDFS 파일 특정 부분을 읽어와 로컬 디스크 파일 저장 코드Big Data2012. 5. 23. 09:52
Table of Contents
입력되는 argument 는 파일명, offset, length 이고 HDFS 에 있는 args[0] 파일에 접근해서 offset 위치에서부터 length 크기만큼의 데이터를 local 에 args[0] 파일명으로 저장하는 코드
public class file_hadoop {
public static void main(String[] args) throws Exception {
String uri = args[0];
int buf = 1024 * 1024 * 10;
int fileNum = 0;
byte bytearray[] = new byte[buf];
long offset = Long.parseLong(args[1]);
long length = Long.parseLong(args[2]);
int ReadData = 0;
long ReadSum = 0;
try {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(uri), conf);
InputStream in = fs.open(new Path(uri));
in.skip(offset);
while (ReadSum < length) {
if (length - ReadSum < buf)
buf = (int)(length - ReadSum);
if ((ReadData = in.read(bytearray, 0, buf)) == -1)
break;
IOUtils.copyBytes(new ByteArrayInputStream(bytearray, 0, ReadData), new FileOutputStream(args[0]), buf, false);
ReadSum += ReadData;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
반응형
'Big Data' 카테고리의 다른 글
Hadoop에서 Maximum Map, Reduce Task 옵션 설정 하기 (0) | 2013.02.08 |
---|---|
Hadoop 에서 DataNode 와 TaskTracker 제거 및 추가하기 (0) | 2013.02.08 |
Hadoop 실행 중인 작업 강제 취소 명령어 (0) | 2012.05.23 |
HDFS Datanode 데몬 복구 명령어 (0) | 2012.05.23 |
HDSF 관리자 명령어로 안전모드 상태 변경 (0) | 2012.05.23 |
@kogun82 :: Ctrl+C&V 로 하는 프로그래밍
Korean BioInformation Center(KOBIC) Korea Research Institute of Bioscience & Biotechnology Address: #52 Eoeun-dong, Yuseong-gu, Deajeon, 305-806, KOREA +82-10-9936-2261 e-mail: kogun82@kribb.re.kr Blog: kogun82.tistory.com Homepage: www.kobic.re.kr
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!