이미 소장하고 있다면 판매해 보세요.
|
PART 1 Hadoop 기초
Chapter 1 Hadoop 기초 지식 11 Hadoop이란? 12 Hadoop 개요 13 Hadoop 적용 분야 14 Hadoop 시스템 구성과 아키텍처 15 Hadoop 적용 사례 Chapter 2 MapReduce 애플리케이션 활용 예 21 블로그 접속 수 집계 22 비슷한 사람을 찾아내자 23 검색 엔진 인덱스 작성 24 이미지 데이터 분산 처리 25 MapReduce로 구현할 수 있는 처리 특성과 활용 포인트 Chapter 3 Hadoop 도입 31 구축 환경 조건 32 실행 환경 구축 33 동작 확인 34 샘플 애플리케이션 실행 Chapter 4 HDFS 41 Hadoop의 파일 시스템 42 HDFS의 구조 43 HDFS의 파일 I/O 흐름 44 파일 시스템의 메타데이터 45 HDFS 설정과 시작/중지 46 SecondaryNameNode 47 CLI 기반 파일 조작 Chapter 5 MapReduce 프레임워크 51 MapReduce 처리 52 MapReduce 아키텍처 53 MapReduce와 HDFS의 관계 54 MapReduce 프레임워크 설정 55 MapReduce 프레임워크 시작과 정지 56 CLI 기반 MapReduce 관리 Chapter 6 Hadoop 애플리케이션 실행 61 테스트 애플리케이션 62 MapReduce 애플리케이션(자바) 63 HadoopStreaming 애플리케이션 64 Pig 애플리케이션 65 Hive 애플리케이션 Chapter 7 Hadoop 클러스터 구축 71 완전 분산 클러스터 72 환경 구축의 전제 조건 73 Hadoop 클러스터 환경 구축 74 웹 인터페이스를 통한 동작 확인 75 샘플 애플리케이션 실행 PART 2 MapReduce 애플리케이션 개발 Chapter 8 MapReduce 프로그래밍 기초 - 자바를 사용한 개발(1) - 81 자바를 사용한 MapReduce 개발 82 소스 코드 단계에서 프로그램 실행 83 Mapper 84 Reducer 85 Writable 86 InputFormat/OutputFormat 87 main 프로그램 Chapter 9 MapReduce 프로그래밍 응용 - 자바를 사용한 개발(2) - 91 MapReduce 프로그램 커스터마이즈 92 입력 데이터 조작을 제어한다 93 출력 데이터 제어 94 독자 데이터형을 정의한다 95 Shuffle 단계 동작 제어 96 MapReduce 애플리케이션 테스트 및 디버깅 Chapter 10 MapReduce 개발 팁 -자바를 사용한 개발(3) - 101 이 장에서 소개할 내용 102 압축 데이터 다루기 103 MapReduce 처리에 적합한 파일 포맷 104 한 번에 복수의 파일 포맷 처리 105 분산 캐시 이용 106 Map 태스크/Reduce 태스크 실행 Context 처리 107 처리 중에 발생한 이벤트를 집계 108 MapReduce 애플리케이션 설정을 제어 Chapter 11 HadoopStreaming 111 HadoopStreaming이란· 112 HadoopStreaming 애플리케이션 구성 113 HadoopStreaming 활용 예 114 HadoopStreaming 명령어 옵션 Chapter 12 데이터 흐름형 처리 언어 Pig 121 Pig란· 122 Pig 실행 방법 123 Pig의 데이터 관리 124 Pig에서의 처리 방법 125 함수 126 애플리케이션 개발 127 Pig Latin 처리 구현 128 사용자 정의 함수 구현 129 Pig 디버그 1210 Pig를 활용하기 위한 포인트 Chapter 13 SQL 유사 인터페이스 Hive 131 Hive 개요 132 Hadoop과 Hive 133 HiveQL 134 효율적인 Hive 활용법 PART 3 Hadoop 클러스터 구축과 운영 Chapter 14 환경 구축 효율화 141 환경 구축과 설정 자동화 142 환경 구축 서버 설치 143 OS 자동 설치 144 Puppet을 사용한 환경 설정 145 PSSH를 이용한 운영 146 Hadoop 설정의 베스트 환경 Chapter 15 가용성 향상 151 고가용성의 기본 152 HDFS 고가용성 153 MapReduce 고가용화 Chapter 16 클러스터 모니터링 161 Hadoop 모니터링 162 Ganglia를 통한 Hadoop 클러스터 메트릭스 취득 163 Hadoop 클러스터 감시 Chapter 17 클러스터 운영 171 Hadoop 운영이란· 172 운영 시 구체적인 작업 173 정기적으로 실시해야 할 작업 174 Hadoop 클러스터 확장 175 클러스터 장애 대응 Chapter 18 복수 사용자에 의한 리소스 제어 181 리소스 제어 도입 182 기본 설정 183 스케줄러를 사용한 리소스 분배 제어 PART 4 Hadoop 활용 기술 Chapter 19 Hadoop 튜닝 191 튜닝이 필요한 케이스 192 MapReduce 잡 동작에 영향을 주는 설정 193 Map 태스크 튜닝 194 Reduce 태스크 튜닝 195 자바 VM 튜닝 196 OS 튜닝 Chapter 20 분산형 데이터베이스 HBase 201 HBase란· 202 HBase 데이터 모델 203 아키텍처 204 설치 방법 205 HBase Shell 206 MapReduce 잡 활용 207 HBase 테이블 설계 Chapter 21 Fluentd 로그 수집기 211 로그 수집기 등장 배경 212 Fluentd란· 213 모든 로그를 JSON으로 214 Fluentd 설치 215 Fluentd 기본 216 HDFS에 기록하기 위한 설정 예 217 Fluentd 내부 구조 218 Fluentd HA 구성 219 Fluentd 튜닝 2110 Fluentd 모니터링 2111 Fluentd와 유사한 소프트웨어 Chapter 22 YARN 221 YARN 기초 지식 222 YARN 아키텍처 223 Hadoop/MapReduce/YARN과 기존 Hadoop/MapReduce의 차이 224 YARN을 이용한 MapReduce 실행 찾아보기 |
|
그래서 이번 《빅 데이터 시대의 하둡 완벽 입문(제2판)》을 출판하면서 Hadoop을 전혀 모르는 사람들이 이해하는 데 좀 더 도움이 될 수 있도록 1장과 2장 내용을 보강하여 Hadoop에 대한 개요 부분을 좀 더 쉽게 구성했다. 또한, MapReduce 애플리케이션 개발 내용을 추가하여 초보자부터 고급 사용자까지 활용할 수 있도록 했다. 이 책의 특색인 운용성과 가용성 측면도 1판에 비해 보강했으며, 새로운 기술 이슈에 대해서도 추가하였다. _XIV
따라서 대용량 데이터를 효율적으로 읽어 들이기 위해서는 복수의 디스크에 데이터를 기록해 두고 각 디스크에서 병행하여 읽을 수밖에 없다. 예를 들어, 한 대의 SATA 디스크라면 70MB/초 처리량밖에 안 되지만, 40대로 동시에 읽어 들이면 2,800MB/초 처리량을 구현할 수 있다. 1TB 데이터도 약 350초면 된다. 만약 1,000대의 디스크를 사용한다면 14초 만에 읽을 수가 있다. _12p HDFS는 여러 대의 노드로 구성된다. 수백 대 규모가 되면 노드의 고장은 특별한 문제가 아닌 일상적으로 발생할 수 있는 문제가 된다. 예를 들어, 노드 한 대가 고장 날 확률이 1,000일에 1회라고 하면 HDFS 구성 노드 수가 1,000일 경우, 매일 한 대의 서버가 고장 나게 된다. 특정 데이터를 특정 노드에만 저장해 두면 해당 노드의 고장으로 데이터를 잃어버릴 수 있지만, HDFS에서는 복수의 노드를 사용해 데이터 복제를 유지하기 때문에 손실을 방지할 수 있다. _68p Hadoop은 자바 이외의 언어로 MapReduce 애플리케이션을 작성할 수 있도록 프로그램 인터페이스를 제공하고 있다. 이 인터페이스가 HadoopStreaming이다. Hadoop Streaming을 사용해서 애플리케이션을 작성한 경우도 map 함수/reduce 함수 처리를 작성해 주어야 한다. 그러나 HadoopStreaming에서는 Map 처리/Reduce 처리를 위한 데이터 입출력을 위해 표준 입출력을 사용한다는 것이 큰 차이다. 이것은 표준 입출력을 사용할 수 있다면, 어떤 프로그램 언어든 MapReduce 애플리케이션을 만들 수 있다는 것을 의미한다. 앞서 말한 것과 같이 HadoopStreaming을 사용하는 경우도 Map 처리/Reduce 처리가 필요하다. 단, Map 처리/Reduce 처리는 다음 조건을 고려한 후 작성해야 한다. _150p MapReduce 애플리케이션 설계에 있어서 중요한 것은 ‘MapReduce 사양’을 따르는 것이다. MapReduce는 병렬 분산 처리를 위한 프레임워크로, 슬레이브 노드 상에서 실행되는 각 Map 태스크나 Reduce 태스크가 상호 통신 없이 독립된 처리를 한다. 그리고 이를 통해 확장성과 안정성을 확보하고 있다. 그러나 범용 언어인 자바로 프로그램을 기술하면 다음과 같은 처리도 간단히 만들 수 있다. _236p Hive는 HiveQL이라 불리는 SQL 유사 언어를 이용해서 MapReduce를 실행하는 것이다. SQL을 익힌 엔지니어가 MapReduce를 쉽게 이용할 수 있도록 한 처리 인터페이스로, Apache 프로젝트 중 하나다. 주로 페이스북 멤버를 중심으로 개발이 진행되고 있다. SQL과 비슷하지만, SQL 표준을 따르고 있지는 않아서 ‘SQL 유사’라고 한다. HiveQL이 취급하는 데이터는 논리적 행과 열로 이루어진 테이블 구조로, HDFS 상에 파일로 존재한다. HiveQL로 기술한 처리(쿼리)는 MapReduce 같은 일련의 처리로 변환되어 테이블을 조작한다. _320p 최근에는 Cassandra(또는 NoSQL) 등 다른 분산 데이터베이스가 등장하고 있는데, HBase는 이들과 비교해서 ‘일관성을 중시한다’는 것이 특징이다. 다른 데이터베이스들은 저장한 값이 바로 반영되지 않아 저장 시점보다 앞서 존재하던 예전 데이터가 보일 수도 있다. 하지만 HBase에서는 저장된 데이터에 바로 접근해도 반드시 최신 값이 보인다는 것이 특징이다. HBase는 이미 많은 기업이나 서비스가 사용하고 있으며, 최근에는 페이스북 메시지에서 사용해 화제가 되었다. 이 외에도 웹 브라우저 Mozilla의 충돌 리포트 수집, 미국 스텀블어폰(StumbleUpon)의 단축 URL 서비스 등에서 사용되고 있다. _553p ---p.553 |