이 블로그에서는 다음에 대해 논의 할 것입니다. 지도 측 조인 일반 조인 작업에 비해 장점 하이브 .이것은 구현하는 방법을 배워야 할 중요한 개념입니다. .그러나 이에 대해 알기 전에 먼저 '어울리다' 조인을 수행 할 때 내부적으로 어떤 일이 발생하는지 하이브 .
어울리다 두 테이블 (또는 데이터 세트)의 레코드를 결합하는 절입니다.
두 개의 테이블 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
관련 게시물:
자바 스크립트의 이벤트는 무엇입니까