2012-10-02 3 views
1

하둡 작업 할당에 대해 혼란스러워했습니다. 5 개의 입력 데이터 D1, D2, D3, D4, D5가 있다고 가정하면 J1, J2, J3, J4, J5의 5 개의 작업이 있고 J1의 입력 데이터는 D1 등이됩니다. 이제 D1이 4 개의 블록으로 분할되고 이러한 블록이 데이터 센터를 따라 분산되면 J1도 J1에 대해 얼마나 많은 맵핑 및 축소 작업을 수행 할 수 있습니까? 데이터 지역은 어떻게 보존 되었습니까? mapTask1이 정확히 D1의 데이터 블록 하나를 필요로한다는 것을 의미합니까? 나에게 좋은 설명을 해줄 수 있니?하둡 작업 할당

답변

1

D1이 HDFS에 4 블록으로 저장되어 있고 파일을 읽는 데 사용하는 입력 형식으로 파일을 분할 할 수있는 경우 (예 : 분할 된 파일이 아닌 gz 압축 파일), 작업에 대해 4 가지 맵 작업이 제공됩니다 D1을 입력으로 사용합니다.

mapred.min.split.sizemapred.max.split.size 구성 속성을 수정하여지도 작업 수를 늘리거나 줄일 수 있습니다 (다시 입력 파일이 분할 가능하고 입력 형식도 지원한다고 가정).

작업이 제출되면 입력 파일 (D1)의 블록 위치가 이름 노드에서 수집되고 작업을 실행하기 위해 작성된 맵 작업이이 정보 (D1, 블록 0, 노드 1에 위치, '분할 정보').

작업 추적기가 작업을 예약하면 작업 추적 프로그램에서 사용 가능한 맵 슬롯이 무엇인지 조사한 다음 작업의 어떤 작업이 입력 데이터 블록이 작업에 '로컬'로 분할되는지 (가능한 경우) 식별합니다 트래커.

축소 작업의 수는 구성 할 때까지입니다.