2장 맵리듀스
Part 6 맵리듀스 프로그래밍
맵리듀스 애플리케이션을 개발하는 방법을 살펴본다.
- 단위 테스트를 작성
- 잡을 실행하는 드라이버 프로그램 작성
- 정상 동작 검증을 위해 IDE에서 작은 데이터로 실행
- 실패 시 IDE 디버거를 통해 문제 원인 파악
잘 됐다면
- 위 프로그램이 더 빠르게 수행 되도록 표준검사 실행
- 태스크 프로파일링(성능 분석)을 수행
- 분산 프로그램 프로파일링 지원으로 하둡 훅(hook)을 활용
맵리듀스 애플리케이션을 개발하는 방법을 살펴본다.
잘 됐다면
아파치 YARN(Yet Another Resource Negotiator)은 하둡의 클러스터 자원 관리 시스템이다. 맵리듀스의 성능을 높이기 위해 하둡 2에서 처음 도입되었다. 하지만 YARN은 맵리듀스뿐만 아니라 다른 분산 컴퓨팅 도구도 지원한다.
맵리듀스, 스파크 등과 같은 분산 컴퓨팅 프레임워크는 클러스터 계산 계층(YARN)과 클러스터 저장 계층(HDFS, HBase) 위에서 YARN 애플리케이션을 실행한다.
네트워크로 연결된 여러 머신의 스토리지를 관리하는 파일시스템을 분산 파일시스템이라고 한다. 하둡은 HDFS(Hadoop Distributed FileSystem)라는 분산 파일 시스템을 제공한다. 더불어 하둡은 범용 파일시스템을 추구하기 때문에 추상화의 개념을 가지고 있다.
맵리듀스는 데이터 처리를 위한 프로그래밍 모델이다. 자바, 루비, 파이썬으로 작성된 동일한 프로그램을 살펴보면서 예제를 통해 맵리듀스의 프로그래밍 모델을 살펴보자
우리에게 필요한 것은 커다란 한 대의 컴퓨터가 아니라 매우 많은 컴퓨터로 이뤄진 새로운 시스템이다. - 그레이스 호퍼(Grace Hopper)
분산 시스템의 등장으로 우리에게 필요한 것은 좋은 한 대의 컴퓨터가 아니라 평균적인 매우 많은 컴퓨터 저비용 고효율을 따라간 어떻게 보면 당연한 이치