2014-09-23 2 views
0

map-reduce 작업을 실행하면 다양한 맵퍼 및 리듀서의 결과를 저장하기위한 많은 임시 파일을 만들어야합니다. 임시 파일을 hdfs에 기록합니다.hadoop mapreduce가 hdfs에서 임시 파일을 엽니 다.

그렇다면 namenode의 editlog는 파일 열기, 닫기 등과 같은 모든 트랜잭션을 기록하기 때문에 짧은 시간 내에 커질 수 있습니다. hdfs 대신 원시 파일 시스템에 직접 쓰면 피할 수 있습니까? 나쁜 생각?

답변

1

map reduce 코드의 중간 결과가 hdfs가 아닌 로컬 파일 시스템에 기록되고 자동으로 작업 완료 후 제거됩니다.

내가 매퍼에서 출력이 로컬 파일 시스템에 기록 된 말을 의미, 특정 위치를 구성 할 수 있지만 기본적으로는/tmp를/하둡 사용자 이름 * 위치

0

즉, 임시 파일은 매퍼가 실행될 때마다 만들어집니다. 그렇다면 Mapper의 출력이 메모리가 아닌 디스크에 기록되므로이 문제를 피할 수 없습니다. TaskTracker는 MR 작업 설정을 만들고 Mapper 중간 출력을위한 임시 디스크 공간을 생성합니다. 또한 MR 작업이 완료되면 임시 공간이 TaskTracker에 의해 정리됩니다.

이것은 MR 프로그래밍 패러다임의 병목 중 하나입니다.

의견/피드백을 보내 주시면 감사하겠습니다.

+0

에 기록 "당신은이 문제를 피할 수 매퍼의 때문에 출력은 메모리가 아닌 디스크에 기록됩니다. "- 나는 그 부분을 이해합니다. hdfs 나 기본 파일 시스템에 직접 쓰여진 것인지 확실하지 않습니다. –

관련 문제