복붙노트

[HADOOP] 태스크가 종료되면 Hadoop이 HDFS에서 임시 디렉토리를 삭제하지 않도록 알려주는 방법은 무엇입니까?

HADOOP

태스크가 종료되면 Hadoop이 HDFS에서 임시 디렉토리를 삭제하지 않도록 알려주는 방법은 무엇입니까?

기본적으로 hadoop 맵 작업은 처리 된 레코드를 $ {mapred.output.dir} / _ temporary / _ $ {taskid}의 임시 디렉토리에있는 파일에 씁니다. 이 파일들은 FileCommiter가 $ {mapred.output.dir}으로 이동할 때까지 여기에 있습니다 (작업이 성공적으로 완료된 후). 내가 어디에지도 작업의 setup () 위의 파일을 만들어야 할 경우가 있는데, 여기에 임시 디렉토리가 있습니다. 여기에 나중에 다른 곳에서 사용 된 일부 프로세스 관련 데이터를 씁니다. 그러나 hadoop 작업이 종료되면 임시 디렉토리가 HDFS에서 제거됩니다.

태스크가 종료 된 후 Hadoop에게이 디렉토리를 삭제하지 말라고 할 수 있다면 누구나 알고 있습니다. 어떻게 달성 할 수 있습니까? 나는 내가 설정할 수있는 몇 가지 속성이 제공되어야한다고 생각한다.

문안 인사

해결법

  1. ==============================

    1.임시 파일에 의존하는 것은 좋지 않습니다. 임시 파일은 위치와 형식이 릴리스간에 언제든지 바뀔 수 있습니다.

    임시 파일에 의존하는 것은 좋지 않습니다. 임시 파일은 위치와 형식이 릴리스간에 언제든지 바뀔 수 있습니다.

    어쨌든 mapreduce.task.files.preserve.failedtasks를 true로 설정하면 실패한 모든 작업에 대한 임시 파일이 보존되고 mapreduce.task.files.preserve.filepattern을 작업 ID의 정규식으로 설정하면 임시 파일이 작업 성공 또는 실패와 관계없이 패턴 일치.

  2. from https://stackoverflow.com/questions/8328818/how-to-tell-hadoop-to-not-delete-temporary-directory-from-hdfs-when-task-is-kill by cc-by-sa and MIT license