Hadoop File write 에러 상황
- Posted at 2012/05/23 18:04
- Filed under project/lucene_hadoop
오랜만에 기술적인 글 올리네요...
Hadoop 파일 시스템 사용중에 에러가 발생하여 원인 분석한 내용 정리합니다.
버전은 1.0.0 입니다.

그림으로 대략 설명이 되었는데 요약하면 특정 DataNode에 문제가 발생하여 DFSClient가 Recover 요청을 하게 되는데 이 요청을 받은 DataNode가 recover는 정상적으로 수행하였지만 Recover 결과 생기게 되는 새로운 blockid를 DFSClient에 전달 못하는 경우 발생하는 에러입니다.
새로운 blockid를 전달하지 못하는 경우는 recover 처리하는데 시간이 오래 걸리게(다른 DataNode의 부하, 문제 등으로 인해) 되면 DFSClient는 RPC Timeout이 발생하게 되어 recover 요청에 문제가 있다고 판단하고 다시 다른 DataNode에 recover을 하게 됩니다.
13번에서 받은 DataNode가 새로운 blockid를 보내주는 방법으로 개선 가능할 것 같은데 패치가 있는지는 찾아보지 않았습니다.
이렇게 되었을 때 문제는 close 처리시 이미 close되었다는 메시지가 나타납니다. 따라서 close에서도 예외 처리를 해주는 습관이 중요합니다.
데이터 유실은 발생하지 않습니다.
Posted by 김형준
- Response
- No Trackback , No Comment






