최근 에 을 읽 었 습 니 다. 여기 서 책 속 의 사고 와 조작, 그리고 자신의 견 해 를 기록 하고 공유 합 니 다. 이 책 이 필요 한 pdf 는 을 클릭 하여 다운로드 할 수 있 습 니 다.
MapReduce 는 분포 식 대량의 데이터 처리 프로 그래 밍 프레임 워 크 로 데이터 처리 문 제 를 해결 하 는 유 니 버 설 템 플 릿 이다.
MapReduce&Hadoop
MapReduce (MR) 작업 은 클 러 스 터 에서 실행 되 는 일련의 map 와 reduce 작업 으로 나 뉘 는데 모든 작업 은 지 정 된 작은 데이터 세트 에서 실 행 됩 니 다.
map 는 주로 데이터 의 불 러 오기, 해석, 변환 과 여과 을 책임 집 니 다.모든 reduce 작업 은 map 작업 출력 결 과 를 처리 하 는 키 집합 을 책임 집 니 다.
Hadoop 의 map 는 4 단계 로 나 눌 수 있 습 니 다. record reader (분석 시 입력), mapper (키 생 성), comber (map 엔 드 에 미리 취 합 되 어 선택 가능), paritioner (키 에 따라 파 티 션 을 나 누고 reducer 마다 하나의 조각 에 대응 합 니 다) 맵 의 출력 은 중간 키 와 중간 값 으로 reduce 에 보 내 후속 처 리 를 합 니 다.map 작업 의 실행 은 데이터 가 있 는 노드 를 우선 선택 하여 데이터 의 네트워크 전송 을 감소 합 니 다 reduce 단 계 는 4 단계 로 나 뉜 다.
개요 모드
수치 개요 특정한 키 를 바탕 으로 그룹 을 기록 하고 그룹 결과 에 대해 일련의 집합 값 을 계산한다.처리 할 수 있 는 것 은 수치 데이터 나 계수 입 니 다.데 이 터 는 특정한 필드 에 따라 그룹 을 나 눌 수 있다 대부분의 경우 comber 를 통 해 네트워크 전송 데이터 의 양 을 줄 일 수 있다.항상 사용자 정의 paritioner 를 사용 하여 더 좋 은 키 를 나 누 거나 데이터 의 기울 기 를 해결 해 야 합 니 다 색인 개요
역 배열 색인 은 식별 자 목록 에 나타 난 맵 의 실현 이다.검색 응답 을 빠르게 검색 하 는 장면 에 적용 되 며, 최종 출력 결 과 는 필드 값 에서 이 필드 값 을 포함 하 는 일련의 맵 입 니 다.
과정: mapper 출력 키 - > comber 프 리 폴 리머 - > partitioner 그룹 - > reduce 폴 리머 역 배열 색인 을 만 드 는 성능 은 다음 과 같은 기준 에 의 해 결정 된다. mapper 엔 드 내용 분석의 계산 원가, 색인 키 의 기수, 각 키 에 대응 하 는 식별 자 수 구현 시 에 도 예비 취 합 을 통 해 데이터 전송 을 줄 일 수 있 으 며, 핫 이 슈 데이터 가 존재 하면 사용자 정의 paritioner 를 통 해 해결 할 수 있 습 니 다 카운터 카운터
MR 프레임 워 크 자체 가 계산 기 를 제공 하여 map 에서 전체적인 계 수 를 계산 할 수 있 습 니 다.reduce 프로 세 스 집합 이 필요 없 이 계수 의 효율 을 높 였 다.분석의 효율 은 어느 정도 에 맵 작업 의 수량 과 각 기록 의 처리 시간 에 달 려 있다.
// Map
context.getCounter( , )
// Driver
job.getCounters().getGroup( )
필터 모드
필 터 는 기 존의 기록 을 바 꾸 지 않 고 조건 을 통 해 조건 을 만족 시 키 는 부분 집합 을 선별 합 니 다.
여과
필 터 는 데 이 터 를 추출 하 는 부분 집합 을 후속 분석 에 사용 하 는 메커니즘 으로 사용 하 는 유일한 조건 은 데이터 가 기록 으로 해석 되 고 일정한 준칙 을 통 해 보존 여 부 를 확인 할 수 있다 는 것 이다 .
과정: 입력 데이터 - > 주어진 평가 함수 - > 데이터 보존 여 부 를 판단 합 니 다 필 터 는 맵 엔 드 만 있 고 출력 결과 수량 은 mapper 의 수량 과 일치 합 니 다. 파일 수량 이 너무 많 으 면 reducer 를 사용 하여 결 과 를 수집 할 수 있 습 니 다 부 릉 필터
부 릉 필 터 는 우리 로 하여 금 특정한 미리 정 의 된 집합 에 속 하 는 기록 을 보류 하 게 했다. 판단 할 때 오심 이 있 을 수 있 지만 누락 되 지 않 는 다 과정: 부 릉 필 터 를 훈련 - > 필터 조작 Top k
매 mapper 에 대해 각각 top k 를 취하 고 하나의 reducer 를 사용 하여 마지막 연산 을 처리 합 니 다 모든 mapper 는 k 개의 기록 을 생 성 합 니 다. m 개의 map 작업 이 있 을 때 reducer 는 m * k 개의 기록 을 처리 해 야 합 니 다.k 가 크 면 reducer 에 문제 가 생 길 수 있 습 니 다.top k 는 k 가 작은 경우 에 만 적용 무 거 운 것 을 제거 하 다
데이터 가 집중 적 으로 중복 되 는 요 소 를 걸 러 내 면 reducer 의 수량 은 여러 개 (키 가 같은 기록 은 같은 reducer 로 나 눌 수 있 습 니 다) reducer 의 수 는 각 기록 의 항목 수 와 mapper 에서 출력 하 는 바이트 수 에 달 려 있다.
comber 를 사용 하여 map 단 에서 무 게 를 제거 하고 전송 하 는 데 이 터 량 을 줄 일 수 있 습 니 다.
데이터 조직 모드
분산 식 시스템 의 성능 은 분 구, 분 편 및 정렬 방식 을 통 해 최적화 할 수 있다.
레이 어 링 모드
레이 어 링 모델 은 데이터 에서 원 구조 와 다른 신기록 을 만 드 는 것 으로 데 이 터 를 계산 에 유리 한 구조 로 전환 시 켜 후속 연산 의 연결 작업 을 피해 야 한다.
데이터 원본 이 외부 키 로 연결 되 거나 데이터 가 구조 화 되 고 줄 기반 실현: 여러 개의 mapper 를 설정 하고 관련 키 에 따라 배포 하 며 reducer 에서 데 이 터 를 연결 합 니 다 분 구
분 구 는 기록 을 분류 하지만 기록 의 순서 에 관심 이 없고 데이터 집중 이 비슷 한 기록 을 서로 다른, 더 작은 데이터 세트 로 나눈다.
데 이 터 는 파 티 션 기 를 통 해 파 티 션 을 하고 파 티 션 기 는 모든 기록 을 어느 reducer 에 보 낼 지 결정 하 며 모든 reducer 는 어떤 파 티 션 에 대응 하 는 지 상 자 를 나누다
데이터 가 집 중 된 모든 기록 을 하나 이상 의 유형 으로 압축 하고 분 구 와 달리 분 구 / 분 상자 의 실현 방법 이 다르다.상자 분할 모드 는 맵 단계 에서 데 이 터 를 구분 하여 reduce 단계 의 작업량 을 감소 시 켰 다.단점 은 모든 mapper 가 출력 가능 한 상자 마다 파일 을 만 드 는 것 입 니 다 전체 정렬 (p86)
전체 정렬 은 데이터 가 기록 에서 기록 까지 의 순서 에 주목 합 니 다.
전체 빅 데이터 세트 에 대해 먼저 수치 범위 에 따라 구역 을 나 눈 다음 에 가장 낮은 범위 안의 구역 부터 정렬 한 다음 에 전체 정렬 된 데이터 세트 를 얻 을 수 있다.
주로 분석 단계 와 정렬 단계 로 나 뉜 다.분석 단계 에서 각 구역 의 범 위 를 확정한다.정렬 단 계 는 범위 구역 의 전체 정렬 구역 에 따라 각 구역 내 부 를 정렬 하고 출력 은 전체 정렬 입 니 다.
혼 렬
주어진 데이터 세트 를 완전히 무 작위 화 실현: map 단 은 입력 기록 을 값 으로 하고 발생 하 는 랜 덤 키 와 함께 출력 합 니 다 - > reduce 단 은 랜 덤 키 를 정렬 하여 데이터 의 랜 덤 분포 - > 값 을 변환 출력 합 니 다 연결 모드
연결 은 소수 집합 과 의 관 계 를 통 해 데이터 세트 를 풍부하게 할 수 있다.
연결 모드 선택: 데이터 세트 의 크기, 데이터 형식 및 연결 유형 에 달 려 있 습 니 다.
reduce 엔 드 연결, 부 릉 필터 기반 reduce 엔 드 연결, map 엔 드 연결, 피리 칼 적
내부 연결: 두 표 가 관련 조건 을 만족 시 키 는 데 이 터 는 보 존 됩 니 다.
왼쪽 외부 연결: 내부 연결 에 비해 왼쪽 외부 연결 은 왼쪽 표 에 남아 있 지 않 은 데 이 터 를 유지 합 니 다.
오른쪽 외부 연결: 내부 연결 에 비해 오른쪽 외부 연결 은 오른쪽 표 에 남아 있 지 않 은 데 이 터 를 유지 합 니 다.
전 외 연결: 내부 연결 에 비해 계량 표 에 일치 하지 않 는 기록 이 남아 있 습 니 다.
역 접속: 전 외 연결 에서 내 연결 을 뺀 결과
피리 칼 적: 한 표 의 모든 기록 으로 다른 표 의 모든 기록 과 일치 합 니 다. 결 과 는 m * n 개의 기록 을 포함 합 니 다.
reduce 엔 드 연결
큰 데이터 세트 를 reduce 단계 로 보 내 려 면 대량의 네트워크 대역 폭 이 필요 하 다.
데이터 세트 가 매우 크 면 reduce 엔 드 연결 이 유일한 선택 일 수 있 습 니 다 map 단 에 여러 개의 입력 이 있 으 면 외부 키 를 키 로 추출 한 다음 에 기록 을 표시 하 는 값 으로 reduce 단 처리 에 떨 어 집 니 다.
부 릉 필 터 를 사용 한 맵 엔 드 연결
을 포함 한 연결 에서 map 단 에서 필요 하지 않 은 데 이 터 를 여과 하면 네트워크 I / O 손실 을 크게 줄 일 수 있다 .
실현: 조건 을 만족 시 키 는 모든 외부 키 에 따라 부 릉 필 터 를 훈련 시 키 고 map 에서 부 릉 필터 에 따라 조건 만족 여 부 를 판단 한다 .
연결 복사
복사 연결 은 빅 데이터 세트 와 많은 작은 데이터 세트 사이 에 map 단 을 통 해 연결 하 는 작업 빅 데이터 세트 를 제외 한 모든 데 이 터 는 map 시작 단계 에서 메모리 에 읽 어야 합 니 다.내부 연결 이나 왼쪽 외부 연결 에 만 작용 합 니 다 메모리 부족 이 발생 하면 JVM 크기 를 늘 리 거나 reduce 엔 드 연결 을 사용 해 야 합 니 다.
조합 연결 (p116)
조합 연결 은 맵 에서 많은 매우 큰 포맷 에 왼쪽 연결 을 입력 할 수 있 습 니 다
reduce 엔 드 처리 가 필요 없 지만 데 이 터 는 미리 조직 되 거나 특정한 방식 으로 미리 처리 되 어야 합 니 다.
피리 칼 적 (p121)
피리 칼 은 데이터 가 집 중 된 모든 기록 을 다른 데이터 세트 의 모든 기록 과 간단하게 조합 했다.
이 책 에 대한 수확 은 여기까지 입 니 다. 뒤에 세 장 이 있 습 니 다. 씹 을 수 없 는 데다 가 자주 사용 하지 않 습 니 다. 잠시 놓 아 두 겠 습 니 다.