맵 사이드 조인 대. 어울리다



이 게시물에서는 Hadoop Map 측 조인 Vs에 대해 설명합니다. 어울리다. 또한 맵 축소, 테이블 조인, 조인 측, Hive에서 맵 측 조인 작업 사용의 이점에 대해 알아 봅니다.

이 블로그에서는 다음에 대해 논의 할 것입니다. 지도 측 조인 일반 조인 작업에 비해 장점 하이브 .이것은 구현하는 방법을 배워야 할 중요한 개념입니다. .그러나 이에 대해 알기 전에 먼저 '어울리다' 조인을 수행 할 때 내부적으로 어떤 일이 발생하는지 하이브 .

어울리다 두 테이블 (또는 데이터 세트)의 레코드를 결합하는 절입니다.
두 개의 테이블 A와 B가 있다고 가정합니다. 여기에 조인 작업을 수행하면 모든 열 o f A와 B의 조합 인 레코드가 반환됩니다.





이제 일반 조인의 기능을 예제를 통해 이해하겠습니다.

조인 작업을 적용 할 때마다 작업은 두 단계로 구성된 Map Reduce 작업에 할당됩니다. ‘지도 단계 ’및‘ 단계 감소 ’. 지도 단계에서 매퍼의 임무는 '읽다' 조인 테이블의 데이터와 '반환' 그만큼 ‘조인 키’'결합 가치' 중간 파일로 쌍을 이룹니다. 또한 셔플 단계에서이 중간 파일이 정렬되고 병합됩니다. 축소 단계에서 감속기의 역할은 정렬 된 결과를 입력으로 가져와 결합 작업을 완료하는 것입니다.



C ++의 정적 멤버 함수

  • 맵 측 조인은 조인과 유사하지만 모든 작업은 매퍼 만 수행합니다.

  • Map-side Join은 작업을 최적화하기위한 작은 테이블에 가장 적합합니다.



맵 측 조인이 작업을 어떻게 최적화합니까?

두 개의 테이블 중 하나가 작은 테이블이라고 가정합니다. 맵 축소 작업을 제출하면 HDFS에서 작은 테이블의 데이터를 읽어 메모리 내 해시 테이블에 저장하는 원래 조인 Map Reduce 작업 전에 Map Reduce 로컬 작업이 생성됩니다. 읽은 후 메모리 내 해시 테이블을 해시 테이블 파일로 직렬화합니다.

다음 단계에서 원래 Join Map Reduce 작업이 실행 중일 때 해시 테이블 파일의 데이터를 Hadoop 분산 캐시로 이동하여 각 매퍼의 로컬 디스크에 이러한 파일을 채 웁니다. 따라서 모든 매퍼는이 영구 해시 테이블 파일을 메모리로 다시로드하고 이전과 같이 조인 작업을 수행 할 수 있습니다. 최적화 된 맵 조인의 실행 흐름은 아래 그림과 같습니다. 최적화 후 작은 테이블을 한 번만 읽어야합니다. 또한 여러 매퍼가 동일한 시스템에서 실행중인 경우 분산 캐시는 해시 테이블 파일의 복사본 하나만이 시스템에 푸시하면됩니다.

맵 측 조인 사용의 장점 :

  • 맵 측 조인은 정렬 및 병합에 발생하는 비용을 최소화하는 데 도움이됩니다. 혼합줄이다 단계.
  • 맵 측 조인은 작업 완료 시간을 줄여 작업 성능을 향상시키는데도 도움이됩니다.

맵 측 조인의 단점 :

  • 맵측 조인은 맵측 조인 작업을 수행하는 테이블 중 하나가 메모리에 맞을만큼 충분히 작은 경우에만 적합합니다. 따라서 두 테이블 모두에서 거대한 데이터 인 테이블에 대해 맵 측 조인을 수행하는 것은 적합하지 않습니다.

Map Reduce 조인의 간단한 예 :

두 개의 테이블을 만들어 보겠습니다.

  • Emp : 직원 이름, 직원 ID 및 소속 부서와 같은 직원의 세부 정보가 포함됩니다.

  • 부서 : 부서 이름, 부서 ID 등과 같은 세부 정보가 포함됩니다.

다음 이미지에 표시된대로 두 개의 입력 파일을 생성하여 생성 된 테이블에 데이터를로드합니다.

employee.txt

dept.txt

이제 데이터를 테이블에로드하겠습니다.

우리가 수행하자 지도 쪽 어울리다 두 테이블에 각 직원이 근무하는 부서 목록을 추출합니다.

여기, 두 번째 테이블 부서 작은 테이블입니다. 항상 부서의 수는 조직의 직원 수보다 적습니다.

이제 일반 Reduce 측 조인을 사용하여 동일한 작업을 수행해 보겠습니다.

두 조인을 모두 실행하는 동안 두 가지 차이점을 찾을 수 있습니다.

  • Map-Reduce 조인은 일반 조인에 소요 된 시간에 비해 더 짧은 시간에 작업을 완료했습니다.

  • Map-reduce 조인은 감속기의 도움없이 작업을 완료 한 반면 일반 조인은 하나의 감속기의 도움으로이 작업을 실행했습니다.

그 후, 지도 측 조인 짧은 시간 내에 작업을 완료 할 수있을만큼 테이블 중 하나가 메모리에 맞을만큼 작을 때 가장 좋은 방법입니다.

실시간 환경 , 엄청난 양의 데이터가 포함 된 데이터 세트가 있습니다. 따라서 데이터 세트 중 하나의 크기가 더 작 으면 분석을 수행하고 데이터를 검색하는 데 시간이 많이 걸립니다. 그런 경우는 지도 측 조인 더 짧은 시간에 작업을 완료하는 데 도움이됩니다.

Hadoop을 마스터하기에 더할 나위없이 좋은시기입니다! Edureka에서 특별히 선별 한 빅 데이터 및 하둡 과정을 지금 시작하세요.

참조 :
https://www.facebook.com/notes/facebook-engineering/join-optimization-in-apache-hive/470667928919

관련 게시물:

빅 데이터 교육으로 조직을 바꿀 수있는 7 가지 방법

자바 스크립트의 이벤트는 무엇입니까