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 지도 작업이 완료되면 삭제 될 경로. 삭제가 키 기반으로 수행되는지 아니면 각 태스크 트래커에 대해 수행되는지 확실하지 않습니다.
제 생각에 DistributedCache는 읽기 전용 파일 또는 지정된 노드를 통해 모든 노드에서 동일한 파일에 사용됩니다. 예를 들어 구성 파일이나 jar 파일을 실행하십시오. 제 문제는 처리 중에 파일을 생성한다는 것입니다. 예를 들어 jpg를 사용하고 압축하는 경우와 같이 유지할 수도 있고 유지하지 않을 수도 있습니다. 감사합니다. – akintayo
파일을 HDFS로로드하는 방법 또는 이미 S3에 있거나 HDFS로 이미 파일을로드하고 있습니까? 맵퍼를 사용하여 파일을 스트리밍 할 수 있습니다 (외부에서 끌어 오려는 파일 HDFS가 입력 파일에있을 것입니다.이 줄을 읽을 수 있습니다). 그리고 t를 씁니다. 그는 매퍼에서 HDFS로 버전을 압축하거나 작업에서 다른 상점 (예. Cassandra 또는 MongoDB), HDFS는 전혀 없습니다. 파일을 압축 한 후 파일로 무엇을하고 있습니까? 백업 및 이중화 및 압축을 위해 공간을 절약하기 위해 파일을 HDFS에 저장하는 것이 맞습니까? –
파일이 입력 시퀀스 파일에 포함되어 있습니다. 파일을 다시 생성 한 후 단계별로 처리합니다. 처리가 끝나면 출력 시퀀스 파일에 결과를 복사합니다. 이 워크 플로를 사용해야하는데 성능을 저하시키지 않고 파일을 배치하여 작업에 사용할 수있는 위치를 파악하려고합니다. 감사합니다. – akintayo