2010-07-30 4 views
4

SLES 10 (SUSE)에서 Hadoop 0.20.1을 실행 중입니다.지도는 Hadoop에서 실행될 때 임시 파일을 어디에 놓아야합니까?

내지도 작업은 파일을 가져 와서 몇 가지를 생성하고,이 파일에서 결과를 생성합니다. 이 파일을 어디에 배치해야하는지 알고 싶습니다. 따라서 성능이 좋고 충돌이 없습니다. Hadoop이 디렉토리를 자동으로 삭제할 수 있다면 멋질 것입니다.

지금은 임시 폴더와 작업 ID를 사용하여 고유 폴더를 만든 다음 해당 폴더의 하위 폴더에서 작업하고 있습니다.

reduceTaskId = job.get("mapred.task.id"); 
reduceTempDir = job.get("mapred.temp.dir"); 
String myTemporaryFoldername = reduceTempDir+File.separator+reduceTaskId+ File.separator;  
File diseaseParent = new File(myTemporaryFoldername+File.separator +REDUCE_WORK_FOLDER); 

이 방법의 문제는 나는 그것이 최적 모르겠습니다 것입니다, 또한 내가 각각의 새 폴더를 삭제하거나 나는 공간이 부족하기 시작합니다. 감사 제공

내가 ("job.local.dir")를 최고의 장소 당신이 job.get 될 것이다지도의 수명을 넘어 원하지 않는 파일을 유지하는 것을 발견 (편집) akintayo 지도 작업이 완료되면 삭제 될 경로. 삭제가 키 기반으로 수행되는지 아니면 각 태스크 트래커에 대해 수행되는지 확실하지 않습니다.

답변

0

이러한 접근 방식의 문제점은 정렬 및 셔플이 해당 데이터가 지역화 된 위치에서 데이터를 멀리 옮길 것이라는 점입니다.

나는 당신의 데이터에 대해 잘 모르지만 분산 캐시는

$ {mapred.local.dir}/taskTracker가/아카이브/잘 작동 될 수 있습니다 분산 캐시. 이 디렉토리는 지역화 된 분산 캐시를 보유합니다. 맵리 듀스 프로그램이 각 맵에 의해 읽거나 실행하기 전에 작업을 줄일 수 있습니다. 예를 들어 할 하나 개 이상의 파일을 필요로하기 때문에 국부 분산 캐시가 모든 작업 및 작업

http://www.cloudera.com/blog/2008/11/sending-files-to-remote-task-nodes-with-hadoop-mapreduce/

에서 공유 "그것은 일반적이다 이 시나리오를 해결하기 위해 Hadoop의 MapReduce 구현에는 파일을 작업 실행 노드에 복사하는 것을 관리하는 분산 파일 캐시가 포함되어 있습니다.

DistributedCache는 Hadoop 0.7.0에서 처음 소개되었으며 HADOOP-288에서 그 기원에 대한 자세한 내용을 볼 수 있습니다. 기존 문서 DistributedCache 구현 : Hadoop FAQ, MapReduce Tutorial, Hadoop Javadoc 및 Hadoop Streaming Tutorial을 참조하십시오. 기존 문서를 읽고 DistributedCache 사용 방법을 이해했으면 다시 돌아 오십시오. "

+0

제 생각에 DistributedCache는 읽기 전용 파일 또는 지정된 노드를 통해 모든 노드에서 동일한 파일에 사용됩니다. 예를 들어 구성 파일이나 jar 파일을 실행하십시오. 제 문제는 처리 중에 파일을 생성한다는 것입니다. 예를 들어 jpg를 사용하고 압축하는 경우와 같이 유지할 수도 있고 유지하지 않을 수도 있습니다. 감사합니다. – akintayo

+0

파일을 HDFS로로드하는 방법 또는 이미 S3에 있거나 HDFS로 이미 파일을로드하고 있습니까? 맵퍼를 사용하여 파일을 스트리밍 할 수 있습니다 (외부에서 끌어 오려는 파일 HDFS가 입력 파일에있을 것입니다.이 줄을 읽을 수 있습니다). 그리고 t를 씁니다. 그는 매퍼에서 HDFS로 버전을 압축하거나 작업에서 다른 상점 (예. Cassandra 또는 MongoDB), HDFS는 전혀 없습니다. 파일을 압축 한 후 파일로 무엇을하고 있습니까? 백업 및 이중화 및 압축을 위해 공간을 절약하기 위해 파일을 HDFS에 저장하는 것이 맞습니까? –

+0

파일이 입력 시퀀스 파일에 포함되어 있습니다. 파일을 다시 생성 한 후 단계별로 처리합니다. 처리가 끝나면 출력 시퀀스 파일에 결과를 복사합니다. 이 워크 플로를 사용해야하는데 성능을 저하시키지 않고 파일을 배치하여 작업에 사용할 수있는 위치를 파악하려고합니다. 감사합니다. – akintayo

관련 문제