찾다
일반적인 문제시스템이 수행하는 정렬 프로세스를 무엇이라고 합니까?

MapReduce는 각 감속기의 입력이 키별로 정렬되도록 하며 시스템에서 수행되는 정렬 프로세스를 셔플이라고 합니다. 셔플 단계에는 주로 맵 단계의 결합, 그룹, 정렬, 분할, 리듀서 단계의 병합 정렬이 포함됩니다.

시스템이 수행하는 정렬 프로세스를 무엇이라고 합니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.

MapReduce는 각 리듀서의 입력이 키별로 정렬되도록 하며 시스템에서 수행되는 정렬 프로세스를 셔플이라고 합니다. 맵이 출력을 생성하고 입력을 소화하여 줄이는 전체 프로젝트로 이해할 수 있습니다.

맵 측면: 각 mapperTask에는 맵 작업의 출력을 저장하는 데 사용되는 링 메모리 버퍼가 있습니다. 임계값에 도달하면 백그라운드 스레드는 쓰기 전에 디스크의 지정된 디렉터리에 새로 생성된 오버플로 쓰기 파일에 콘텐츠를 씁니다. 디스크로 이동하려면 파티션, 정렬, 결합기를 거쳐야 합니다. 마지막 레코드가 기록된 후 오버플로 기록된 모든 파일을 하나의 분할되고 정렬된 파일로 병합합니다.

Reduce 측: 복사 단계, 정렬 단계, 축소 단계로 나눌 수 있습니다.

Copy 단계: 맵 출력 파일은 맵 작업을 실행하는 작업 추적기의 로컬 디스크에 위치합니다. Reduce는 http를 통해 출력 파일의 파티션을 얻습니다. , tasktracker는 파티션 파일입니다. 축소 작업을 실행하면 매핑 작업이 완료되자마자 출력 복사가 시작됩니다.

정렬 단계: 정렬이 지도 쪽에서 수행되기 때문에 병합 단계라는 용어가 더 적절합니다. 이 단계에서는 지도 출력을 병합하고 순서를 유지하며 반복합니다.

마지막 단계는 축소 단계입니다. 정렬된 출력의 각 키에 대해 축소 기능이 호출됩니다. 이 단계의 출력은 일반적으로 HDFS인 출력 파일 시스템에 직접 기록됩니다. ,

셔플 단계 설명

셔플 단계에는 주로 맵 단계의 결합, 그룹, 정렬, 분할이 포함되고 리듀서 단계의 병합 정렬이 포함됩니다. Map 단계에서 섞은 후 출력 데이터는 축소 파티션에 따라 파일에 저장되고 파일 내용은 정의된 정렬에 따라 정렬됩니다. Map 단계가 완료된 후 ApplicationMaster에 통지되고, AM은 Reduce에 데이터를 가져오라고 알리고, 가져오는 과정에서 감소 측에서 셔플 프로세스를 수행합니다.

참고: Map 단계의 출력 데이터는 Map 노드를 실행하는 디스크에 저장되며, Reduce가 데이터를 가져온 후에는 임시 파일이 삭제됩니다. HDFS를 사용하면 저장 공간이 손실됩니다(3개의 복사본이 생성됨).

  • 사용자 정의 Combiner

    Combiner는 Map 단계에서 중간 출력 결과 수를 줄이고 네트워크 오버헤드를 줄일 수 있습니다. 기본적으로 Combiner는 없습니다. 사용자 정의 Combiner는 Map의 출력 와 Combiner의 출력 로 사용됩니다. 즉, Combiner의 입력과 출력은 동일해야 합니다.

    job.setCombinerClass를 통해 결합기 처리 클래스를 설정할 수 있습니다. MapReduce 프레임워크는 이 클래스의 메서드가 호출된다는 것을 보장하지 않습니다.

    참고: 축소의 입력과 출력이 동일하면 축소 클래스를 결합기로 직접 사용할 수 있습니다.

  • 사용자 정의 파티셔너

    파티셔너는 축소의 지도 출력에 해당하는 처리 감속기는 무엇입니까? 기본 MapReduce 작업 감소 수는 1입니다. 이때 Partitioner는 실제로 아무런 효과가 없습니다. 그러나 감소 수를 여러 개로 변경하면 파티셔너는 키에 해당하는 감소의 노드 수를 결정합니다(0부터 시작). ).

    Job.setPartitionerClass 메서드를 통해 Partitioner 클래스를 지정할 수 있습니다. 기본적으로 HashPartitioner가 사용됩니다(기본적으로 key의 hashCode 메서드가 호출됩니다).

  • 사용자 정의 그룹

    GroupingComparator는 Map에서 출력한 를 직설적으로 말하면 로 그룹화하고 결합하는 데 사용되는 키 클래스입니다. key1과 key2가 동일한 그룹에 속하는지 확인하려면 맵의 출력 값을 결합하세요.

    자체 인터페이스 RawComparator를 구현하려면 사용자 정의 클래스가 필요하며, job.setGroupingComparatorClass 메소드를 통해 비교 클래스를 지정할 수 있습니다. 기본적으로 WritableComparator가 사용되지만 최종적으로 비교를 위해 키의 CompareTo 메서드가 호출됩니다.

  • 사용자 정의 정렬

    SortComparator는 Map에서 출력되는 그 사람이 뒤에 있어요.

    자체 인터페이스 RawComparator를 구현하려면 사용자 정의 클래스가 필요하며, job.setSortComparatorClass 메소드를 통해 비교 클래스를 지정할 수 있습니다. 기본적으로 WritableComparator가 사용되지만 최종적으로 비교를 위해 키의 CompareTo 메서드가 호출됩니다.

  • 사용자 정의 Reducer의 Shuffle

    리듀스 측이 맵의 출력 데이터를 가져오면 셔플(병합 정렬)이 수행됩니다. MapReduce 프레임워크는 플러그인 모드에서 사용자 정의된 방식을 제공합니다. ShuffleConsumerPlugin을 사용하고 mapreduce.job.reduce.shuffle.consumer.plugin.class 매개변수를 지정하여 사용자 정의 셔플 규칙을 지정하지만 일반적으로 기본 클래스인 org.apache.hadoop.mapreduce.task.reduce.Shuffle이 직접 사용됩니다.

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 비디오를 방문하세요! !

위 내용은 시스템이 수행하는 정렬 프로세스를 무엇이라고 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구