2014-03-12 2 views
1

하둡이 작품을 독립적 인 덩어리로 나눕니다. 그러나 한 매퍼가 다른 매퍼보다 먼저 작업을 처리하는 것을 상상해보십시오. 마스터 프로그램이이 매퍼에게 이미 다른 매퍼에 연결된 작업 (즉, 일부 작업)을 제공 할 수 있습니까? 그렇다면 어떻게?하둡의 주인과 노예

답변

0

투기 실행 Yahoo Tutorial 읽기 최대 - 하둡 시스템

하나의 문제 몇 느린 노드 속도 제한을하는 프로그램의 나머지 부분을 여러 노드에 작업을 나누어, 그것이 가능하다는 것이다 . 예를 들어 한 노드에 느린 디스크 컨트롤러가있는 경우 다른 모든 노드의 속도의 10 % 만 입력 할 수 있습니다. 따라서 99 개의 맵 작업이 이미 완료되면 시스템은 최종 맵 작업이 체크인하기를 기다리고 있으며 다른 모든 노드보다 훨씬 오래 걸립니다. 강제로 작업을 서로 독립적으로 실행하면 개별 작업은 입력이 어디서 왔는지 알지 못합니다. 태스크는 Hadoop 플랫폼을 신뢰하여 적절한 입력 만 제공합니다. 따라서 동일한 입력을 여러 번 병렬로 처리하여 기계 기능의 차이를 활용할 수 있습니다. 작업에서 대부분의 작업이 종료됨에 따라 Hadoop 플랫폼은 수행 할 다른 작업이없는 여러 노드에서 나머지 작업의 중복 사본을 예약합니다. 이 프로세스는 추측 실행이라고합니다. 작업이 완료되면이 사실을 JobTracker에 알립니다. 어떤 작업의 복사본이 먼저 완료 되든 최종 복사본이됩니다. 다른 복사본이 추측 적으로 실행 중이면 Hadoop은 TaskTrackers에게 작업을 포기하고 출력을 무시하도록 지시합니다. Reducers는 매퍼가 성공적으로 완료 한 시점부터 입력을받습니다. 추측 실행은 기본적으로 사용됩니다. mapred.map.tasks.speculative.execution 및 mapred.reduce.tasks.speculative.execution JobConf 옵션을 각각 false로 설정하여 매퍼 및 축소 기의 투기 실행을 비활성화 할 수 있습니다.

+0

감사합니다,하지만 투기는 상대적으로 작은 클러스터에 대한 좋지 않은 N 매퍼에 동일한 작업을 제공합니다 : MR v2의 새로운 옵션은 지금 서로 다른 어려움을 겪고있는 문제를 어떻게 해결할 수 있을까요? 그리고 마스터 프로그램이 작업을 마쳤다면 각 매퍼를 확인하게 할 수 있습니다. 그렇다면 다른 곳과 관련된 데이터의 일부를 제공합니다. 매퍼 !! –

0

MapReduce v1 만 다루는 Yahoo 자습서 정보는 개념은 동일하지만 약간 오래된 것입니다. ,

mapreduce.map.speculative
mapreduce.reduce.speculative

+0

하지만 투기는 처음부터 작업이 X 매퍼에게 주어지고 가장 빠른 것이 마스터 프로그램에 답을 보낼 것임을 의미합니다. 매퍼 X1에 몇 가지 작업을 한 다음 매퍼 X2가 작업을 완료하고 매퍼 X1에 연결된 작업의 일부를 제공했는지 확인하고 싶습니다. –

+0

올바른, 추측 실행은 전체 맵 또는 축소 태스크 만 포함합니다. 이미 실행중인 태스크를 다른 매퍼 또는 감속기로 분할 할 수 없습니다. 내가 아는 한, 그 기능은 하둡에 존재하지 않습니다. – JamCon