2012-10-24 3 views
0

Hadoop 클러스터에서 MapReduce 작업을 실행할 때 이벤트 체인과 관련된 특정 정보를 찾고 있습니다.MapReduce 작업 실행시 일련의 이벤트

내 Reduce 작업이 완료 직전이라고 가정 해 봅시다. 마지막 감속기가 출력 파일에 출력을 기록한 후에 출력 파일의 복제본이 몇 개나 있습니까? 마지막 감속기가 출력 파일에 쓰기를 완료 한 후 정확히 어떻게됩니까? NameNode는 언제 출력 파일을 복제 할 각 데이터 노드를 요청합니까? 이름 노드는 출력 파일이 준비되었음을 어떻게 알 수 있습니까? 누가 NameNode에 그 정보를 전달합니까?

감사합니다.

답변

3

작업 축소 작업을 HDFS에 작성합니다. 그들은 먼저 블록을 요청하기 위해 이름 노드와 통신함으로써이를 수행한다. 그런 다음 이름 노드는 감속기에 어떤 데이터 노드에 쓰기를 지시 한 다음 감속기가 실제로 첫 번째 데이터 노드로 데이터를 직접 전송 한 다음 두 번째 데이터 노드로 전송하여 세 번째 노드로 보냅니다. 일반적으로 이름 노드는 일을 로컬로 유지하므로 첫 번째 데이터 노드는 아마도 reduce 작업을 실행하는 동일한 시스템 일 것입니다.

감속기가 출력 작성을 완료하고 데이터 노드가이를 확인하면 감속기 자체가 주기적으로 하트 비트 통신을 통해 완료되었음을 작업 추적자에게 알립니다.

+0

감사합니다. 매우 도움이되었습니다. – Chaos

1

HDFS 복제의 기본 사항을 이해하려면 HDFS 아키텍처 문서에서 replica placement을 읽어야합니다. 요컨대, NameNode는 대기 시간을 최소화하기 위해 동일한 랙을 사용하려고합니다.

+0

감사합니다. – Chaos