[HADOOP] Hadoop의 투기 적 태스크 실행
HADOOPHadoop의 투기 적 태스크 실행
Google의 MapReduce 종이에는 백업 작업이 있지만, Hadoop에서 투기 작업과 동일한 작업이라고 생각합니다. 투기 작업은 어떻게 구현됩니까? 나는 투기 작업을 시작할 때 아주 천천히 시작하는 작업부터 시작하거나 이전 작업이 끝난 위치에서 시작합니다 (그렇다면 모든 중간 상태와 데이터를 복사해야합니까?).
해결법
-
==============================
1.Hadoop 시스템의 한 가지 문제는 여러 노드에서 작업을 나누어서 느린 노드가 나머지 프로그램의 속도를 제한하는 것이 가능하다는 것입니다.
Hadoop 시스템의 한 가지 문제는 여러 노드에서 작업을 나누어서 느린 노드가 나머지 프로그램의 속도를 제한하는 것이 가능하다는 것입니다.
하드웨어 저하 또는 소프트웨어 오 구성 등 여러 가지 이유로 인해 작업이 느릴 수 있지만 예상보다 긴 시간이 지나기는하지만 작업이 성공적으로 완료 되었기 때문에 원인을 찾기가 어려울 수 있습니다. Hadoop은 느리게 실행되는 작업을 진단하고 수정하려고하지 않습니다. 대신 작업이 예상보다 느리게 실행되는 것을 감지하고 백업과 동일한 다른 작업을 시작합니다. 이를 투기 적으로 수행하는 작업이라고합니다.
예를 들어 한 노드에 느린 디스크 컨트롤러가있는 경우 다른 모든 노드의 속도의 10 % 만 입력 할 수 있습니다. 따라서 99 개의 맵 작업이 이미 완료된 경우 시스템은 최종 맵 작업이 체크인 할 때까지 기다리지 만 다른 모든 노드보다 훨씬 오래 걸립니다.
작업을 서로 독립적으로 실행함으로써 개별 작업은 입력이 어디에서 왔는지 알지 못합니다. 태스크는 Hadoop 플랫폼이 적절한 입력을 전달하는 것을 신뢰합니다. 따라서 동일한 입력을 여러 번 병렬로 처리하여 기계 기능의 차이를 활용할 수 있습니다. 작업의 대부분의 작업이 종료됨에 따라 Hadoop 플랫폼은 수행해야 할 다른 작업이없는 여러 노드에서 나머지 작업의 중복 사본을 예약합니다. 이 프로세스는 추측 실행이라고합니다. 작업이 완료되면이 사실을 JobTracker에 알립니다. 어떤 작업의 복사본이 먼저 완료 되든 최종 복사본이됩니다. 다른 복사본이 추측 적으로 실행되면 Hadoop은 TaskTrackers에게 작업을 포기하고 출력을 무시하도록 지시합니다. Reducers는 Mapper가 성공적으로 완료 한 후부터 입력을받습니다.
투기 실행은 기본적으로 사용됩니다. 이전 API를 사용하여 mapred.map.tasks.speculative.execution 및 mapred.reduce.tasks.speculative.execution JobConf 옵션을 각각 false로 설정하여 맵퍼 및 리듀서에 대한 추측 실행을 비활성화 할 수 있지만 새로운 API에서는 변경을 고려할 수 있습니다 mapreduce.map.speculative 및 mapreduce.reduce.speculative.
그래서 당신의 질문에 답하기 위해 그것은 새롭게 시작하고 다른 일이 얼마나 많은 일을했는지 / 완료했는지와 관련이 없습니다.
참조 : http://developer.yahoo.com/hadoop/tutorial/module4.html
from https://stackoverflow.com/questions/15164886/hadoop-speculative-task-execution by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 그러한 메소드가 없다는 예외 Hadoop <init> (0) | 2019.05.30 |
---|---|
[HADOOP] hadoop : 0 감속기와 신원 감속기의 차이점은 무엇입니까? (0) | 2019.05.30 |
[HADOOP] Hadoop 입력 분할 크기 대 블록 크기 (0) | 2019.05.30 |
[HADOOP] 하둡의 파일 분할 크기 변경 (0) | 2019.05.30 |
[HADOOP] 돼지 라틴어 : 날짜 범위에서 여러 파일로드 (디렉토리 구조의 일부) (0) | 2019.05.30 |