서브메뉴

본문

하둡 맵리듀스 최적화와 튜닝 (MapReduce 성능 최적화를 위한 Hadoop 클러스터 구성과 튜닝)
하둡 맵리듀스 최적화와 튜닝 (MapReduce 성능 최적화를 위한 Hadoop 클러스터 구성과 튜닝)
저자 : 칼레드 타니어
출판사 : 에이콘출판
출판년 : 2014
ISBN : 9788960775848

책소개

acorn+PACKT 시리즈. 맵리듀스와 맵리듀스의 성능에 대해 개괄하고, 맵리듀스 클러스터 최적화 구성, 리소스 병목을 찾아내고 해결하는 저자의 소중한 노하우가 담겨있으며, 맵리듀스 애플리케이션과 데이터에 따른 맵리듀스의 각 단계별 상세한 튜닝법을 설명한다.



아울러 맵리듀스 애플리케이션 개발자가 반드시 숙지하고 있어야 할 코딩 기술과, 사용자의 맵리듀스 애플리케이션 성능을 극대화 할 수 있는 다양한 시스템 관련 튜닝(OS, JVM, GC, I/O 등)과 체크리스트, 그리고 애플리케이션 성능과 개발자의 생산성을 함께 높일 수 있는 맵리듀스 템플릿 코드를 제공한다.



하둡 클러스터 노드 규모 산정, 자원 병목을 찾아내기 위한 하둡 맵리듀스 성능관련 카운터 활용법, 최적의 맵퍼와 리듀서 구성, 압축과 컴바이너 활용을 통한 맵과 리듀서 태스크 처리율 최적화, 다양한 최적화 기법 이해와 클러스터 최적화의 모범사례 등을 다루고 있다.
[알라딘에서 제공한 정보입니다.]

출판사 서평

★ 요약 ★
오픈소스인 하둡(Hadoop)에서, 클러스터 구성 및 최적화는 사용자의 기술과 경험적인 영향을 많이 받는다. 맵리듀스(MapReduce)의 경우 하위 인프라에 추가로 수행될 맵리듀스 애플리케이션과 데이터, 사용자의 특성까지 고려하여 구성하고 튜닝해야 한다. 이 책에는 맵리듀스와 맵리듀스의 성능에 대해 개괄하고, 맵리듀스 클러스터 최적화 구성, 리소스 병목을 찾아내고 해결하는 저자의 소중한 노하우가 담겨있으며, 맵리듀스 애플리케이션과 데이터에 따른 맵리듀스의 각 단계별 상세한 튜닝법을 설명한다. 아울러 맵리듀스 애플리케이션 개발자가 반드시 숙지하고 있어야 할 코딩 기술과, 사용자의 맵리듀스 애플리케이션 성능을 극대화 할 수 있는 다양한 시스템 관련 튜닝(OS, JVM, GC, I/O 등)과 체크리스트, 그리고 애플리케이션 성능과 개발자의 생산성을 함께 높일 수 있는 맵리듀스 템플릿 코드를 제공한다.

★ 이 책에서 다루는 내용 ★
■ 하둡 클러스터 노드 규모 산정
■ 자원 병목을 찾아내기 위한 하둡 맵리듀스 성능관련 카운터 활용법
■ 최적의 맵퍼와 리듀서 구성
■ 압축과 컴바이너 활용을 통한 맵과 리듀서 태스크 처리율 최적화
■ 다양한 최적화 기법 이해와 클러스터 최적화의 모범사례
■ 사용자의 하둡 클러스터 취약점 발견
■ 맵리듀스 성능에 영향을 주는 요인

★ 이 책의 대상 독자 ★
하둡 관리자 혹은 개발자, 맵리듀스 사용자, 하둡 입문자가 클러스터와 애플리케이션을 최적화하는 데 매우 유용한 도서다. 맵리듀스 애플리케이션 개발 경험이 있다면, 마지막 장의 맵리듀스 클래스 템플릿 코드를 이해하는 데 도움이 된다.

★ 이 책의 구성 ★
1 장, 맵리듀스의 이해: 맵리듀스 내부 동작 방식과 성능에 영향을 주는 요인을 찾아본다.

2 장, 하둡 설정 개요: 하둡 설정 파일과 맵리듀스 성능 관련 설정을 연구하고. 추가로 하둡 맵리듀스 활동 내역을 모니터링하는 데 사용하는 하둡 지표와 다양한 성능 모니터링 툴을 살펴본다.

3 장, 시스템 병목 검출: 하둡 맵리듀스 성능 튜닝 절차와 성능 기준치 작성 요령을 배운다. 그리고 하둡 카운터를 이용해 리소스 병목과 취약점을 찾는 방법을 배운다.

4 장, 리소스 취약점 발견: 하둡 클러스터 상태와 CPU와 메모리 사용량, 대규모 I/O 스토리지와 네트워크 전송량을 확인한다. 하둡 클러스터를 구축할 때 필요한 정확한 리소스 산정 방법을 배운다.

5 장, 맵과 리듀스 태스크 성능 향상: 맵과 리듀스 태스크 실행 성능을 향상시키는 기술을 배운다. 블록 크기의 중요성을 배우고 스필 레코드 수 절감 방법, 맵과 리듀스 처리율 측정, 맵리듀스 설정 튜닝 방법을 학습한다.

6 장, 맵리듀스 최적화: 맵과 리듀스 태스크 최적화를 위한 컴바이너와 압축 기술의 적절한 적용 예시를 살펴보고 다양한 애플리케이션 코드 최적화 기술을 학습한다.

7 장, 모범 사례와 권장 사항: 하둡 클러스터를 최대한 활용하기 위한 각종 장비와 소프트웨어의 체크리스트, 권장 사항, 튜닝 기법을 소개한다.

★ 저자 서문 ★
맵리듀스는 데이터마이닝과 웹 인덱싱 같은 대규모 또는 데이터 집약적인 애플리케이션에 매우 중요한 병렬 처리 모델이다. 하둡은 맵리듀스의 오픈소스 구현체이며, 빠른 응답시간이 요구되는 클러스터 컴퓨팅 작업에 많이 활용되고 있다.
대부분의 맵리듀스 프로그램은 데이터 분석을 위해 작성되며, 작업 완료까지 오랜 시간이 걸린다. 많은 업체에서 요구된 시간 안에 완료가 가능한 대규모 데이터 심화분석 작업으로 활용한다. 성공적인 활용을 위해 맵리듀스의 I/O 효율성은 아직 개선이 필요한 부분이다. 경험에 의하면 미숙하게 구성된 하둡 클러스터는 맵리듀스 작업 성능을 크게 저하시킨다.
이 책에서는, 맵리듀스 최적화 문제의 개요, 결점 발견 방법, 하둡 클러스터 자원을 최대한 활용한 입력 데이터 처리 방법을 살펴보게 된다. 먼저 맵리듀스 내부 동작방식을 설명하고 성능 저하 원인을 고민해본다. 2 장부터는 하둡 지표와 성능 관련 툴을 이용하여 CPU와 메모리, 대규모 I/O 스토리지, 네트워크 전송과 같이 성능에 취약한 리소스를 분석한다.
이 책은 저자의 실제 경험을 바탕으로, 작업의 병목을 최대한 제거하고 운영 환경의 맵리듀스 작업 성능을 극대화 하는 방법을 단계별로 소개한다.
마지막으로 하둡 클러스터 튜닝의 모범 사례와 권장 사항을 다루고, 맵리듀스 템플릿 클래스를 소개한다.

★ 옮긴이의 말 ★
오픈 소스 하둡 맵리듀스를 설치해보고 실행해본 독자라면 특별한 튜닝 및 최적화 작업 없이도 사용 가능함을 알 것이다. 진입 장벽은 그리 높지 않지만 깊게 파고들수록 내부 구조가 더욱 복잡하다고 알려져 있는 프레임워크라서 그런지 가상서버 3~4대만 있으면 하둡 튜토리얼 사이트를 보고 뚝딱 설치할 수 있다. 심지어 개인 PC 한 대로도 설치가 가능하다. 설치가 완료되고 wordcount 예제를 실행해보면 “에이 별 거 아니네.”라는 생각이 든다. 하지만 이러한 빈 껍데기 상태의 맵리듀스 클러스터를 어디다 쓸 수 있을까? 데이터 크기가 조금만 늘어나거나 맵리듀스 애플리케이션 코드와 구성이 복잡해져도 잡 처리속도가 느려지고, 특정 단계에서의 진행률이 오랜 시간 지속됐던 경험이 많았다. 더욱 답답한 건 그 원인을 알 수 없는 것이다.

하둡은 오픈 소스인 만큼, 클러스터 구성 및 최적화는 사용자의 기술과 경험적인 영향을 많이 받는다. 맵리듀스의 경우 하위 인프라에 추가로 수행될 맵리듀스 애플리케이션과 데이터, 사용자의 특성까지 고려해서 구성하고 튜닝해야 한다.

이 책에는 이러한 내용이 고스란히 담겨있어, 하둡 맵리듀스 클러스터 운영자와 애플리케이션 개발자에겐 필수 지침서로 권장한다. 맵리듀스 클러스터 최적화와 애플리케이션 개발에 관한 다양한 체크리스트와 노하우가 담겨있어, 책상 책꽂이에 꽂아두고, 이 책의 내용을 습관처럼 숙지하고 응용한다면 소중한 자산이 될 것이다. 이 책 개요에 소개된 바와 같이, 하둡 경험이 없는 독자라도 쉽게 이해할 수 있도록 맵리듀스 프레임워크에 대한 전반적인 설명도 담겨있다.
[교보문고에서 제공한 정보입니다.]

목차정보

1장 맵리듀스의 이해

___맵리듀스 모델

___하둡 맵리듀스 개요

___하둡 맵리듀스 내부 구성

___맵리듀스 성능에 영향을 주는 요인

___정리



2장 하둡 설정 개요

___하둡 설정 연구

______mapred-site.xml 설정 파일

_________CPU 관련 설정

_________디스크 I/O 관련 설정

_________메모리 관련 설정

_________네트워크 관련 설정

______hdfs-site.xml 설정 파일

______core-site.xml 설정 파일

___하둡 맵리듀스 지표

___성능 모니터링 툴

______척와의 하둡 모니터링

______강글리아의 하둡 모니터링

______나지오스의 하둡 모니터링

______암바리의 하둡 모니터링

___정리



3장 시스템 병목 검출

___성능 튜닝

___성능 기준치 작성

___리소스 병목 검출

______메모리 병목 검출

______CPU 병목 검출

______스토리지 병목 검출

______네트워크 병목 검출

___정리



4장 리소스 취약점 발견

___클러스터 취약점 발견

______하둡 클러스터 노드 상태 확인

______입력 데이터 크기 확인

______대규모 I/O와 네트워크 트래픽 발생 확인

______병렬 태스크 부족 증상 확인

______CPU 경합 발생 확인

___하둡 클러스터 규모 산정

___올바른 클러스터 구성

___정리



5장 맵과 리듀스 태스크 성능향상

___맵 태스크 성능향상

______입력 데이터와 블록 크기의 영향

______작고 분할이 안되는 파일 처리

______맵 단계의 스필 빈도 줄이기

______맵 태스크 처리율 계산

___리듀스 태스크 성능향상

______리듀스 태스크 처리율 계산

______리듀스 실행 단계 성능향상

___맵과 리듀스 설정 튜닝

___정리



6장 맵리듀스 태스크 최적화

___컴바이너 활용

___압축 활용

___적절한 Writable 자료형 사용

___스마트한 자료형 재사용

___맵퍼와 리듀서 코드 최적화

___정리



7장 모범 사례와 권장 항목

___하드웨어 튜닝과 운영체제 권장 설정

______하둡 클러스터 체크리스트

______바이오스 튜닝 체크리스트

______운영체제권장설정

___하둡모범사례와권장사항

______하둡설치

______권장하둡튜닝

______맵리듀스 클래스 템플

___정리
[알라딘에서 제공한 정보입니다.]