맵리 듀스 하둡 흐름 분석 데이터의 관점에서 흘러

데이터의 관점에서 프로세스 흐름의 MapReduce

은 JobTracker : 작업 및 모니터 클러스터 리소스의 일정에 대한 책임

구현 및보고 하트 비트 작업에 대한 책임 : TaskTracker

1 입력

MapReduce의 프레임을 먼저 입력 된 슬라이스 (InputSplit) 클래스 FileInputFormat InputFormat 클래스의 서브 클래스 형성 HDFS 슬라이싱 입력에 파일로서 계산한다 각 InputSplit지도 태스크 입력으로서 다음의 키 - 값 쌍 InputSplit로 파싱을 . ㄱ 함수 맵으로 해석에 키 입력을 InputSplit. 디폴트는 행 번호 가장 입력 뱅크와 콘텐츠 키가 크기는 데이터 블록이 데이터 블록의 크기보다 작을 수있다 InputSplit보다 크기가 클 수있다.

도 2는, 매핑, 및 중간 결과를 출력

각 태스크는지도 기능의 출력을 저장하는 링 맵 메모리 버퍼를 갖는다. 상기 버퍼 액의 내용에 도달하면, 백그라운드 처리는 디스크의 버퍼 오버 플로우 (유출)의 내용을 기록한다.

(1) 디스크에 기록하기 전에, 상기 데이터 버퍼는 결국 기본 키에 따라 송신에있어서, (파티션) 감속기를 분할한다. 각 파티션에서, 정렬의 키에 백그라운드 스레드 (빠른 정렬의 첫 번째 순서)에 따라.

(2) 디스크에 기록하기 전에, 결합기이다 동일한 키 값의 결합 된 효과 일 수있다. 목표는 콤팩트 중간 결과의 출력 매핑되므로 디스크 감속기 적은 효율로 전달 로컬 데이터에 기록한다는 것이다 최대 값, 최소값을 선택하고, 작업을 합산 겸용.

(3) 기록 오버플 할 정렬 병합 여러 파일로 병합 번째 정렬은 최종 합병 결과 이미 분할 및 정렬 된 출력 파일.

또한라는 데이터 실업자를 3.shuffle

(1), 동작은 인 풀 카피 (복사에게) 감속기 taskTracker가 위치한 태스크를 수행 한 결과를 매핑하는 중간 노드. 다수의 파티션은 동일한 결과는 복사하는 복사 과정을 당기는 것 유출 감속기 .

감속기는 파티션의 수의 수와 동일 할 때, 각각의 감속기 결과 데이터를 하나 개의 파티션을 포함한다.

감속기의 수가 적은 파티션의 수를 초과 할 때, 구획 데이터의 상단에 동시에 환원제 두 데이터 파티션 상기 감속기 나타난다.

감속기의 수는 파티션의 수보다 많은 경우, 결과는 작업 널 (null)의 복수이다.

그림 삽입 설명 여기

그림 삽입 설명 여기

(2) 제 정렬 중간 병합 결과의 복수의 맵. 병합 정렬 사용된다.

모든 사본은지도 출력 완료되면 모든 데이터가 마지막으로 병합됩니다 정렬 된 파일, 입력 등의 작업을 줄일 수 있습니다. 셔플 파일이 처리 및 핵심 영역을 정렬 한 후. 그러나 각 감속기 간의 서열 관계 (제 주문 예 참조)는 다른 감속기 않는다.

4, 같은 파티션의 파일을 한 번에 처리하는 기능을 감소했다.

5. 예 : 단어 수 통계

(1)하는 InputSplit 각 입력지도 작업. 구문 분석의 입력 기능 키를 매핑 InputSplit

(2)지도 작업의 출력은 여러 작업을해야합니다 첫 번째 맵이며, 각 맵의 출력은 분할 및 분류 파일의 작업입니다

(3), 셔플 것입니다 자동으로 병합 종류의 여러지도 작업은, 결과는 셔플의 핵심 영역과 여러 맵 파일을 병합 정렬 작업입니다

(4)에 대응하는 복수의 작업을 줄이고, 셔플 후에 복수의 파일이있을 것이다 줄일 입력의 함수로서 값을 각 파티션의 모든 값을

 

 

도 6에서, 지점 요약 :

(1) 디스크의 출력은이 HDFS에서 연산 동작지도 저장소 중간 결과를 감소시킨다.

(2),지도의 태스크 처리가 InputSplit 인, 프로세싱 태스크를 감소하면 같은 작업을 모든 중간 결과를 구획으로 매핑하는 것이다.

(3) 병합 정렬 실제로 같은 정렬 데이터 파티션이다.

(4), 맵퍼 클래스 파일을 입력으로서 라인의 라인 수의 콘텐츠를 실행하고,지도 상에있어서 각 행에 대해 한 번이라한다. 감속기 입력 파티션 분할과 같은 시간을 줄일 방법을 호출 동일한 클래스를 수행 (예를 조인 테이블 참조).

(5) 상기 입력 타일 번호 (InputSplit)에 따라 mapTask 번호 (매퍼). (감속기) reduceTask 기본 작업 번호 1 , 코드의 각 세트 job.setNumReduceTasks 필요 (50)

 

 

7, 제어 셔플

(1) 자신의 파티션 설정 쓰기

데이터 후의 함수 맵이 처리되기 전에 patitioner 동작은 디스크에 기록되어 있지 않기 때문에 일반적인 파티션 설정은도 있는데, 그지도 기능에 의해 출력 된 결과의 일반적인 형태를 나타낸다. 치료 방법은 치료하지 않고 출력 결과 getPartiion 맵 함수이고, 상기 수신 된 키 값은지도 함수의 출력을 나타낸다. 키가 동일 여부 기본 파티션을 하둡

(2), 정렬 제어 규칙. 맵리 듀스 프레임 워크를 주문에서 실행됩니다,하지만 규칙은 우리가 제어 할 수 있습니다.

하둡 기본 정렬 비교 방법을 비교 하였다 비교 키 값 쌍을 전달하는 것입니다

 

 

 

 

 

게시 된 159 개 원래 기사 · 원 찬양 75 · 전망 190 000 +

추천

출처blog.csdn.net/xuehuagongzi000/article/details/76736979