닫기
쿠폰 사용(자료실)
 
빅데이터 전문가의 하둡 관리
소비자가격 : 40,000↓
판매가격 : 36,000
적립금 :2,000
ISBN :978-89-315-5575-2
등록일자 :2018-11-01
출판사 :도서출판 성안당
저자 :샘 R. 알라파티 저/안진섭 역
분량 :824쪽
편집 :1도
판형 :4x6배 (190x260)
발행일 :2018년 11월 5일
구매수량 :
총 금액 :


책 소개


빅데이터의 숨겨진 가치를 끄집어내라!


속도, 신뢰성, 비용 절감으로 각광받는 하둡관리자의 필독서!




빅데이터 전문가의 하둡 관리

 

데이터 양이 많은 페이스북같은 기업에서 서버의 트래픽이 몰리지 않고 사용자가 빠른 피드백을 받도록 하려면? 데이터를 분산해서 효율적으로 처리해야 한다.

코끼리 모양의 아이콘으로 연상되는 아파치 하둡(Apache Hadoop, High-Availability Distributed Object-Oriented Platform)19966월 미국 델라웨어에서 설립된 아파치 HTTP 서버를 포함한 아파치 오픈 소스 소프트웨어 프로젝트를 지원하는 아파치 소프트웨어 재단(Apache Software Foundation, ASF)에서 개발해 아파치 하둡으로도 불린다. 빅데이터 시대에 속도와 신뢰성이 답보되면서 비용도 저렴한 삼박자의 효율적인 솔루션으로 각광받는 하둡은 2003, 2005년에 발표된 구글 분산 파일 시스템(GFS)과 맵리듀스((MapReduce)를 구현한 것으로 대량의 자료를 처리할 수 있는 대형 컴퓨터 클러스터에서 동작하는 분산 응용 프로그램을 지원하는 프리웨어 자바 소프트웨어 프레임워크를 말한다. 하둡은 빅데이터를 다루는 다양한 기업에서 도입하고 있는데 익스피디아, 호텔스닷컴, 테슬라, 국내 KT같은 기업 등이 하둡을 여러 분야에 도입하여 하둡 기반 플랫폼도 구축하고 있다.

‘Expert HADOOP Administration’ 원서 저자로 하둡 관리자로서의 기술적인 배경과 집필 경험이 풍부한 샘 R. 알라파티(Sam R. Alapati)는 하둡에 대한 큰 그림을 볼 수 있도록 해준다. 하둡 생태계의 하둡 컴포넌트들인 아브로, 플룸, HBase, HCatalog, 하이브, , 카프카, 머하웃, 우지, 피그, 스쿱, 스톰, 테즈 등은 하나하나가 책 한 권으로도 나와 있을 만큼 큰 주제이지만 이 책에서는 이런 솔루션들을 빠짐없이 소개하고 언급한다. 저자는 하둡 생태계에서 크게 얀과 하둡 분산 파일 시스템(HDFS)을 배치하면서 하둡으로 배치, 인터랙티브, 실시간 데이터 접근을 위해서는 스크립트로는 피그, SQL로는 하이브, 스파크, 자바 스칼라로는 캐스케이딩, 스트림으로는 스파크 스트리밍, 인메모리로는 스파크, 검색으로는 솔라(Solr), NoSQL로는 HBase와 어큐뮬로, 머신러닝으로는 스파크 MR과 스파크 R 등을 사용한다며 하둡의 핵심 컴포넌트와 툴을 한눈에 보여준다. 또 하둡을 관리하기 위해 알아야 하는 것, 하둡 12의 차이점을 다룸으로써 하둡 3 시대에도 대비할 수 있도록 하며, 하둡 관리의 핵심 영역까지 소개한다.

역자 안진섭씨는 역시 빅데이터와 관련된 기업인 SAP 코리아에서 데이터베이스 엔진을 개발하면서 하둡에 대한 경험도 풍부한 프로그래머로서 이 책을 상세하고 이해할 수 있는 수준까지 번역하고자 애썼다.

이 책은 크게 521장으로 구성되어 있다. 1부에서는 하둡의 아키텍처와 하둡 클러스터를, 2부에서는 하둡 애플리케이션 프레임워크, 3부에서는 하둡 데이터 관리 및 보호, 고가용성, 4부에서는 데이터 이동, 리소스 할당, 잡 스케줄링, 보안, 5부에서는 모니터링, 최적화, 문제 해결 등을 다룬다. 빅데이터와 머신러닝의 시대, 꼭 필요한 전문가인 하둡 관리자가 되기 위해 반드시 읽어야 할 책으로 추천할 만하다.

 

 

저자 소개


R. 알라파티(Sam R. Alapati)

저자 샘 R. 알라파티(Sam R. Alapati)는 미국 텍사스 주, 사우스레이크에 본사를 두고 있는 사브레(Sabre) 사의 수석 하둡 관리자로서 매일 수많은 하둡 클러스터를 관리하고 있다. 모든 하둡 관리에 대한 자문위원으로서 사브레 사의 EDA(기업 데이터 분석, Enterprise Data Analytics) 그룹의 일원으로 일하고 있으며 하둡의 잡 플로와 관련해서 다수의 중요 데이터 과학과 데이터 분석 작업을 관리하고 최적화하는 일을 한다. 샘은 오라클 데이터베이스 관리 전문가이기도 한다. 그의 관계형 데이터베이스와 SQL에 대한 풍부한 지식은 하둡을 이용한 다수의 프로젝트를 성공으로 이끌었다. 샘의 데이터베이스와 미들웨어에서의 성과는 14년에 걸쳐 18권의 저서에 고스란히 담겨있다. 대부분 오라클 데이터베이스 관리와 오라클 웹로직 서버에 대한 것들이다. 샘은 Modern Linux Administration(현대 리눅스 관리)(오라일리(O’Reilly), 2017)의 저자이기도 하다. 수년에 걸쳐 그가 했던 수많은 시스템 설정, 아키텍처, 성능 관련 하둡 이슈들 다루어온 샘의 경험은 하둡 인프라를 만들고 관리하고 보안을 강화하고 최적화하려고 하는 많은 현역의 하둡 관리자들과 개발자들에게 좋은 참고서가 되고 있다.

 

역자 소개


안진섭

초등학교 때 처음 만난 BASIC 프로그램을 시작으로 프로그램 인생을 시작한 평범한 IT쟁이, 평범한 인생을 살고 있지만 내가 작성하는 프로그램은 평범하지 않기를 바라는 마음으로 한 줄 한 줄 프로그램을 개발하면서 살고 있다. 고려대학교 컴퓨터학과를 졸업하고 삼성 SDS에 입사해 리눅스 드라이버, 미들웨어를 개발했고 아이폰이 국내에 들어왔을 때 모바일 개발자로 전향했다. 사물 인터넷 회사인 매직에코를 공동 창업해 CTO로서 기술 개발에 힘썼다. 현재는 글로벌 기업 SAPHANA 데이터베이스의 코어 엔진 개발을 하고 있다.

주요 프로젝트로는 URC 미들웨어 개발, 로봇 스크립트 엔진 개발, 윈도우 모바일 이메일 클라이언트 개발, SEMP 하이브리드 플랫폼 등 다수의 내부 시스템 개발과 매직에코의 단말, 서버 IoT 플랫폼을 개발했다. 현재는 SQL 실행 엔진을 개발 중이다.

주요 저서로는 진짜 쉽고 쓸모 있는 언어 파이썬!(2016, 성안당), iPhone 실전 프로젝트(2012, 영진출판사)가 있고, 역서로는 리눅스 커널 디자인의 기술(2015, 영진출판사)이 있다.

 

차례

머리말 15

저자 서문 16

이 책은 누구를 위한 것인가? 17

이 책의 구조와 다루고 있는 주제들 17

감사의 말 21

저자에 대하여 23

역자 서문 24

역자에 대하여 25

 

PART Ⅰ• 하둡 소개 아키텍처와 하둡 클러스터 26

Chatper 1. 하둡 소개 및 하둡의 주변 환경 28

 

하둡과 하둡의 생태계에 대한 개요 28

하둡의 특징들 30

빅데이터와 하둡 31

하둡을 사용하는 일반적 시나리오 32

전통적인 데이터베이스 시스템 33

데이터 호수 35

빅데이터, 데이터 과학 그리고 하둡 36

 

클러스터 컴퓨팅과 하둡 클러스들 37

클러스터 컴퓨팅 37

하둡 클러스터들 38

 

하둡 컴포넌트들과 하둡 생태계 40

하둡 관리자들이 하는 일 43

하둡 관리 새로운 패러다임 44

하둡을 관리하기 위해 알아야 하는 것 46

하둡 관리자 툴세트 47

 

하둡 1과 하둡 2의 주요 차이점 47

아키텍처의 차이 47

고가용성 기능들 48

다중 처리 엔진들 48

프로세싱과 스케줄링의 분리 49

하둡 1과 하둡 2의 리소스 할당 방식 49

 

분산형 데이터 처리: 맵리듀스, 스파크, 하이브, 피그 50

맵리듀스 50

아파치 스파크 51

 

데이터 통합: 아파치 스쿱, 아파치 플룸, 아파치 카프카 53

 

하둡 관리의 핵심 영역 54

클러스터 스토리지 관리 55

클러스터 리소스 할당 55

잡 스케줄링 56

하둡 데이터 보안 57

 

요약 58

 

Chatper 2. 하둡 아키텍처 개요 59

 

분산 컴퓨팅과 하둡 59

하둡 아키텍처 60

하둡 클러스터 61

마스터 노드와 워커 노드 61

하둡 서비스 62

 

데이터 스토리지 - 하둡 분산 파일 시스템 63

HDFS 특징들 63

HDFS 아키텍처 64

HDFS 파일 시스템 66

네임노드 오퍼레이션 69

 

하둡 운영 시스템인 얀을 사용한 데이터 프로세싱 74

얀의 아키텍처 75

리소스를 할당하기 위해 애플리케이션마스터가 리소스매니저와 협력하는 방법 80

 

요약 82

 

Chapter 3 간단한 하둡 클러스터 생성 및 환경 설정 83

 

하둡 배포판과 설치 타입 84

하둡 배포판 84

하둡 설치 타입 85

 

가상 분산 하둡 클러스터 설정하기 86

운영 시스템의 조건 충족시키기 87

커널 매개변수의 수정 87

SSH 설정 93

자바 설치 94

하둡 소프트웨어 설치 95

하둡용 사용자 계정 생성 96

필수 디렉토리 생성 96

 

하둡 설정하기 97

환경 설정 파일 98

읽기 전용 디폴트 설정 파일 99

사이트 설정 파일 100

이외의 하둡 관련 설정 파일 100

설정 파일 간의 설정 우선순위 101

변수 확장과 설정 매개변수 104

하둡 데몬 환경 설정 104

core-site.xml 파일로 코어 하둡 속성 설정하기 106

mapred-site.xml 파일로 맵리듀스 설정하기 108

yarn-site.xml로 얀 설정하기 109

 

새로운 하둡 클러스터 운영하기 111

분산 파일 시스템 포맷하기 112

HDFS와 얀 서비스 시작하기 102

서비스 동작 여부 확인하기 115

서비스 중지하기 116

 

요약 116

 

Chapter 4. 하둡 클러스터 계획하기 118

 

클러스터를 계획할 때 일반적으로 고려해야 할 것들 118

서버 구성 요소 120

노드를 선택하는 기준 120

 

싱글 랙에서 멀티 랙으로 가기 121

하둡 클러스터 크기 결정하기 121

CPU, 메모리 그리고 스토리지를 결정하는 일반적인 원칙들 121

마스터 노드에 대해 특별히 고려해야 할 점 125

서버 사이즈에 대한 추천 126

클러스터 확장하기 127

큰 규모의 클러스터를 위한 가이드라인 127

 

멀티노드 클러스터 만들기 128

테스트 클러스터를 만드는 방법 129

 

하둡 설정 파일 수정하기 133

HDFS 설정 변경(hdfs-site.xml 파일) 133

HDFS 매개변수 수정하기 134

얀 설정 수정 135

맵리듀스 설정 변경하기 139

 

클러스터 시작하기 141

스크립트로 클러스터 시작하고 종료하기 143

새로운 클러스터 파일 시스템을 빠르게 점검하기 144

 

하둡 서비스, 웹 인터페이스 그리고 포트 설정하기 145

서비스 설정과 웹 인터페이스 145

하둡 서비스 포트 설정하기 148

하둡 클라이언트 150

 

요약 152

 

 

PART Ⅱ• 하둡 애플리케이션 프레임워크 154

 

Chatper 5. 클러스터에서 야플리케이션 실행하기 맵리듀스 프레임워크(& 하이브와 피그) 156

 

 ▶ 맵리듀스 프레임워크 156

 맵리듀스 모델 157

맵리듀스가 동작하는 방식 158

맵리듀스 잡 프로세싱 160

간단한 맵리듀스 프로그램 162

하둡의 작업 처리 이해하기 - WordCount 프로그램 실행 163

맵리듀스 입력과 출력 디렉토리 164

하둡이 잡의 상세 정보를 보여주는 방법 164

하둡 스트리밍 166

 

 ▶ 아파치 하이브 168

하이브의 데이터 구성 169

하이브 테이블로 작업하기 169

데이터를 하이브로 로딩하기 170

하이브 쿼리하기 171

  

 ▶ 아파치 피그 171

피그 실행 모드 172

간단한 피그의 예시 172

 

   ▶ 요약 173

 

Chapter 6. 클러스터에서 애플리케이션 실행하기 - 스파크 프레임워크 174 


스파크는 무엇인가? 175

 

   ▶ 왜 스파크인가? 176

속도 177

사용과 접근의 용이함 179

간결함과 간편함 179

다목적 프레임워크 180

스파크와 하둡 181

 

   ▶ 스파크 스택 181

 

                ▶ 스파크 설치하기 183

스파크의 예제들 185

스파크의 중요한 파일과 디렉토리들 185

스파크 바이너리 컴파일하기 185

스파크 로그의 상세 정도 줄이기 186




스파크       실행 모드 186



로컬 모드 186

클러스터 모드 187 






클러스터 매니저 이해하기 187

독립형 클러스터 매니저 187

아파치 메소스를 이용하는 스파크 190

얀에서 스파크 실행하기 191

얀과 스파크가 함께 연동되는 방식 192

하둡 클러스터에 스파크 설정하기 192  






스파크와 데이터 액세스 193

리눅스 파일 시스템에서 데이터 로드하기 193

HDFS에서 데이터 로드하기 193

관계형 데이터베이스에서 데이터 로드하기 195  






요약 196

 

 

Chapter 7. 스파크 애플리케이션 실행하기 197   



스파크 프로그래밍 모델 198

스파크 프로그래밍과 RDD 198

함수 프로그래밍 199

스파크 프로그래밍 200  





스파크 애플리케이션 202

RDD의 기초 202

RDD 생성 202

RDD 오퍼레이션 205

RDD 저장 208  




스파크 애플리케이션의 아키텍처 209

스파크 용어 209

스파크 애플리케이션의 컴포넌트 209 


 인터랙티브하게 스파크 애플리케이션 실행하기 210




스파크 셸과 스파크 애플리케이션 211

스파크 셸에 대해 211

스파크 셸 사용하기 212

스파크 클러스터 실행에 대한 개요 214 


스파크 애플리케이션을 만들고 서밋하기 215

스파크 애플리케이션 만들기 216

독립적 스파크 클러스터에서 애플리케이션 실행하기 217

spark-submit으로 애플리케이션 실행하기 217

메소스에서 스파크 애플리케이션 실행하기 219

얀에서 하둡 클러스터에서 스파크 애플리케이션 실행하기 219

JDBC/ODBC 서버 사용하기 222 






스파크 애플리케이션 설정하기 223

스파크 설정 프로퍼티 223

spark-submit을 실행할 때 설정할 수 있는 것 223

  

스파크 애플리케이션 모니터링 225

스파크 스트리밍으로 스트리밍 데이터 다루기 225

스파크 스트리밍의 동작 방식 225

WorkCount로 다시 보는 스파크 스트리밍 227

  

스파크 SQL을 사용해 구조화된 데이터 처리하기 229

데이터프레임 229

HiveContextSQLContext 229

스파크 SQL과 연동하기 230

데이터프레임 생성 231 



요약 232

     

PART Ⅲ• 하둡 데이터 관리 및 보호 그리고 고가용성 234

Chapter 8. 네임노드의 역할과 HDFS의 동작 방식 236 






HDFS - 네임노드와 데이터노드 사이의 상호 연동 237

클라이언트와 HDFS 간의 상호 연동 238

네임노드와 데이터노드 간의 통신 238 






랙 어웨어니스와 토폴로지 240

클러스터에 랙 어웨어니스 설정하기 241

클러스터의 랙 정보 찾기 242 



HDFS의 데이터 복제 244

HDFS 데이터 관리 및 데이터 블록 245

데이터 복제 245

블록과 복제본의 상태 248


   

 클라이언트가 HDFS 데이터를 읽고 쓰는 방식 251

클라이언트가 HDFS 데이터를 읽는 방식 251

클라이언트가 HDFS에 데이터를 쓰는 방식 252

 

HDFS 복구 프로세스의 이해 256

생성 스템프 256

사용권 복구 256

블록 복구 257

파이프라인 복구 258

  HDFS의 중앙집중적 캐시 관리 259

하둡과 OS 페이지 캐시하기 260

중앙 캐시 관리의 핵심 원리 260

중앙 캐시 관리가 동작하는 방식 261

캐시 설정 261

캐시 명령 262

캐시 풀 262

캐시 사용하기 263

 하둡의 아카이브 스토리지, SSD와 메모리(이종 스토리지) 264

스토리지 타입에 따른 성능상의 특징들 265

이기종 HDFS 스토리지의 필요성 266

스토리지 아키텍처의 변화 267

파일에 대한 스토리지 설정 267

아카이브 스토리지 설정 268

스토리지 정책 관리 271

데이터 이동하기 272

아카이브 스토리지 만들기 273

 요약 274

 

Chapter 9. HDFS 명령, 퍼미션, 그리고 스토리지 275

 HDFSHDFS 셸 명령으로 관리하기 276

hdfs dfs 유틸리티를 이용해 HDFS 관리하기 277

HDFS 파일과 디렉토리 목록 구하기 279

HDFS 파일과 디렉토리 제거하기 282

파일과 디렉토리의 소유권 변경하기 283


dfsadmin을 이용해 HDFS 오퍼레이션 실행하기 284

dfsadmin -report 명령 286

  

HDFS 퍼미션과 사용자 관리하기 288

HDFS 파일 퍼미션 288

HDFS 유저와 수퍼 유저 291

  

HDFS 스토리지 관리하기 293

HDFS 디스크 사용률 확인하기 294

HDFS 스토리지에 쿼터 할당하기 298

  

HDFS 데이터 리밸런싱하기 302

HDFS가 불균형 상태가 된 이유 303

HDFS 데이터의 균형을 맞추기 위해 밸런서 실행하기 303

hdfs dfsadmin을 이용해 쉽게 작업하기 306

밸런서 툴을 실행해야 할 시점 308

  

HDFS 여분의 공간 확보하기(공간 재생) 309

파일과 디렉토리 제거하기 310

복제 계수 낮추기 310

 요약 312

 

 

Chapter 10. 데이터 보호, 파일 포맷, 그리고 HDFS 접속 313

   

데이터 보호하기 314

HDFS 휴지통 기능으로 실수로 데이터를 삭제하는 일 방지하기 314

중요한 데이터를 보관하기 위해 HDFS 스냅샷 사용하기 317

파일 시스템 검사를 통한 데이터 무결성 검증하기 322







데이터 압축 328

일반적으로 쓰이는 압축 포맷들 329

다양한 압축 방식에 대한 평가 329

맵리듀스를 위한 여러 단계에서의 압축 330

스파크를 위한 압축 334

데이터 직렬화 334

  

하둡 파일 포맷 335

바른 파일 포맷을 결정하는 기준 335

하둡이 지원하는 파일 포맷들 337

이상적인 파일 포맷 343

하둡의 작은 파일 문제 그리고 파일 합치기 344

작은 파일 문제를 극복하기 위한 연합된 네임노드 사용하기 345

HAR을 이용해 작은 파일 관리하기 345

작은 파일로 인한 성능 이슈 해결하기 347

  

하둡의 WebHDFSHttpFS 이용하기 349

WebHDFS - 하둡의 REST API 349

WebHDFS 사용하기 350

WebHDFS API 사용하기 350

WebHDFS 명령 이해하기 351

방화벽 뒤에 있는 HDFS에 접속하기 위해 HttpFS 게이트웨이 사용하기 355

 요약 357

 

Chapter 11. 네임노드 오퍼레이션, 고가용성 그리고 페더레이션 358  

네임노드 오퍼레이션 이해하기 359

HDFS 메타데이터 360

네임노드 시작 과정 362

네임노드와 데이터노드 간의 협업 과정 363

  

체크포인팅 프로세스 365

세컨더리, 체크포인트, 백업 그리고 스탠바이 노드들 366

체크포인팅 주기 설정 368

체크포인트 성능 관리하기 369

체크포인팅의 메커니즘 370

  

네임노드의 안전 모드 오퍼레이션 371

자동 안전 모드 오퍼레이션 372

네임노드를 안전 모드로 만들기 372

네임노드가 안전 모드를 통해 상태를 전환하는 방법 374

네임노드 메타데이터 백업과 복원 375

  

HDFS 고가용성 설정 377

네임노드의 HA 아키텍처(QJM) 378

아파치 주키퍼를 중재자로 사용하기 378

HDFS HA Quorum 클러스터 설정하기 380

고가용 네임노드 설치하기 385

HA의 수동 전환 및 자동 전환 390

 

HDFS 연합(HDFS Federation) 392

연합 네임노드 아키텍처 393

  

요약 394

 

 

 

PART Ⅳ• 데이터 이동, 리소스 할당, 잡 스케줄링 그리고 보안 396

Chapter 12. 하둡에서 데이터 넣고 배기 39

 

하둡 데이터 이동을 위한 툴들 398  

명령행을 통해 HDFS에 데이터 로딩하기 399

-cat 명령을 사용해 파일 내용 덤프하기 400

HDFS 파일 테스트하기 400

HDFS로 로컬 파일 시스템 간의 파일 복사 및 이동 401

-get 명령으로 파일 옮기기 403

HDFS에서 파일을 가져오거나 넣기 403

-tailhead 명령 사용법 404

  

DistCp를 이용해 클러스터 사이에 HDFS 데이터 복사하기 404

DistCp 명령을 이용해 데이터 옮기기 404

DistCp 옵션 407

  

스쿱으로 관계형 데이터베이스 데이터 처리하기 410

스쿱 아키텍처 410

스쿱 설치하기 411

스쿱으로 데이터 이동하기 412

스쿱으로 데이터 가져오기 413

데이터를 하이브로 가져오기 424

스쿱으로 데이터 내보내기 427

  

플룸을 이용해 외부에서 들어오는 데이터 처리하기 434

플룸 아키텍처 간략히 살펴보기 434

플룸 에이전트 설정하기 437

간단한 플룸 사용 예 438

플룸으로 데이터를 HDFS로 이동하기 440

더 복잡한 플룸 사용 사례 441

  

카프카를 이용해 데이터 처리하기 444

카프카가 제공하는 이점들 445

카프카 동작 방식 446

카프카 클러스터 설정하기 447

하둡과 스톰을 사용해 카프카와 통합하기 451

  

요약 454

 

Chapter 13. 하둡 클러스터의 리소스 할당 455

   

하둡에서 리소스 할당 456

클러스터의 작업량 관리하기 456

하둡의 리소스 스케줄러 457









FIFO 스케줄러 459 


Capacity 스케줄러 459

큐와 서브 큐 461

클러스터가 리소스를 할당하는 방법 467

애플리케이션 선점하기 470

Capacity 스케줄러 활성화하기 471

전형적인 Capacity 스케줄러 471

  

Fair 스케줄러 475

477

Fair 스케줄러 설정하기 477

잡을 큐에 위치시키는 방법 480

Fair 스케줄러에서 애플리케이션 선점 481

보안과 리소스 풀 482

간단한 fair-scheduler.xml 파일 482

스케줄러에 잡 서밋하기 484

애플리케이션을 다른 큐로 이동하기 484

Fair 스케줄러 모니터링하기 484

  

Capacity 스케줄러와 Fair 스케줄러 비교 485

두 스케줄러의 비슷한 점 485

두 스케줄러의 차이점 485

  

요약 486

 

Chapter 14. 우지(Oozie)로 잡 워크플로 관리하기 487

   

 아파치 우지를 이용해 잡 스케줄링하기 488  





우지의 아키텍처 489

우지 서버 490

우지 클라이언트 490

우지 데이터베이스 491

   

클러스터에 우지 설치하기 492

우지 설치와 설정하기 492

우지를 위한 하둡 설정 494

  

우지 워크플로 이해하기 497

워크플로, 컨트롤 플로 그리고 노드 497

workflow.xml 파일을 갖고 워크플로 정의하기 498

  

우지가 액션을 실행하는 방법 499

액션 노드 설정하기 500

   

우지 워크플로 생성하기 506

컨트롤 노드 설정하기 507

잡 설정하기 512


우지 워크플로 잡 실행하기 513

잡 프로퍼티 설정하기 514

우지 잡 배포하기 515

동적 워크플로 생성하기 515

  

우지 코디네이터 517

시간 기반 코디네이터 518

데이터 기반 코디네이터 520

시간과 데이터 기반 코디네이터 521

명령 행으로 우지 코디네이터 서밋하기 522

  

우지 관리하기 523

자주 사용하는 우지 명령과 실행 방법 524

우지 트러블슈팅 526

우지의 스케줄링 및 서비스 수준 527

  

요약 528

 

Chapter 15. 하둡의 보안 529

   

하둡 보안의 개요 530

인증, 인가 그리고 계정 532

  

커버로스로 하둡 인증하기 534

커버로스와 동작 원리 534

커버로스 인증 프로세스 536

커버로스 트러스트 537

특별 프린시플 537

클러스터에 커버로스 인증 추가하기 538

하둡을 위한 커버로스 설정하기 543

커버로스를 사용해 하둡 클러스터 보호하기 548

커버로스가 사용자와 서비스를 인증하는 방법 554

커버로스를 사용하는 하둡 클러스터 관리하기 555






하둡 인가 559

HDFS 퍼미션 559

서비스 레벨 인가 564

아파치 센트리를 이용한 룰 기반 인가 방식 567

   

하둡 감시하기 573

HDFS 오퍼레이션 감시 574

YARN 오퍼레이션 감시 574

  

하둡 데이터 안전하게 보관하기 575

HDFS 트랜스패런트 암호화 576

데이터 전송 시 암호화 579

  

기타 하둡의 보안과 관련 프로젝트들 580

녹스 게이트웨이로 하둡 인프라 보안 강화하기 580

보안 관리를 위한 아파치 레인저 580

  

요약 581

 

 

 

PART Ⅴ• 모니터링, 최적화, 그리고 문제 해결 582

 

Chapter 16. 잡 관리하기, 휴 사용하기 그리고 반복 작업 수행하기 584

   

  YARN 명령을 이용해 하둡 잡 관리하기 585

얀 애플리케이션 보기 586

애플리케이션의 상태 확인하기 588

실행하고 있는 애플리케이션 중지하기 588

노드의 상태 확인하기 588

얀 큐 확인하기 589

애플리케이션 로그 가져오기 589

얀 관리를 위한 명령들 589

  

노드를 클러스터에서 빼거나 추가하기 591

클러스터 호스트를 포함시키거나 제외하기 592

데이터노드와 노드매니저 디커미션하기 593

노드를 리커미션하기 595

디커미션과 리커미션 과정에서 기억하고 있어야 할 것들 595

새로운 데이터노드와 노드매니저 추가하기 596

  

리소스매니저 고가용 설정(HA 설정) 597

리소스매니저의 고가용 아키텍처 597

리소스매니저 장애 극복(Failover) 599

리소스매니저 고가용(HA) 커맨드로 제어하기 601

  

일반적인 관리 작업 수행하기 602

네임노드를 다른 호스트로 이전하기 602

고가용(HA) 네임노드 관리하기 602

클러스터 관리를 위해 Sutdown/Startup 스크립트 사용하기 603

HDFS 밸런싱 603

데이터노드의 스토리지 균형 잡 메우기 604

  

MySQL 데이터베이스 관리하기 605

MySQL 데이터베이스 설정하기 605

MySQL 고가용 설정하기 606

  

중요한 클러스터 데이터 백업하기 608

HDFS 메타데이터 백업하기 608

메타스토어 데이터베이스 백업하기 610

  

휴로 클러스터 관리하기 611

사용자에게 휴를 사용할 수 있도록 허용하기 611

휴 설치 612

휴를 사용할 수 있도록 클러스터 설정하기 614

휴와 연동하기 619

  

특별한 HDFS 기능 사용하기 620

멀티홈드 네트워크에 HDFS와 얀 설치하기 620

숏서킷 로컬 리드 621

마운터블 HDFS 623

NFS 게이트웨이를 이용해 HDFS를 로컬 파일 시스템에 마운트시키기 624

  

요약 626

 

Chapter 17. 모니터링, 지표, 그리고 하둡 로깅 627

   

리눅스 서버 모니터링하기 628

리눅스 시스템 모니터링의 기초 628

리눅스 시스템의 모니터링 툴 630

  

하둡의 평가 지표 634

하둡 지표 종류 635

하둡 지표 이용하기 636

파일 시스템의 지표 수집하기 636

  

갱글리아를 이용한 모니터링 638

갱글리아 아키텍처 638

갱글리아와 하둡 통합 설정하기 639

하둡 지표 설정하기 641

  

하둡 로깅 이해하기 642

하둡 로그 메시지 642

데몬과 애플리케이션의 로그 그리고 로그를 보는 방법 643

애플리케이션 로깅 동작 방식 644

노드매니저 로그디렉토리에 저장되는 것들 645

하둡이 잡을 실행할 때 HDFS 스테이징 디렉토리와 로컬 디렉토리를 얻는 방법 646

로그 어그리게이션을 통해 잡 로그를 HDFS에 저장하기 652

하둡 데몬 로그 다루기 657

  

하둡 웹 UI로 모니터링하기 659

리소스매니저 웹 UI로 잡 모니터링하기 661

잡히스토리서버 웹 UI 665

네임노드 웹 UI를 이용한 모니터링 668

  

하둡 컴포넌트 모니터링 669

하이브 모니터링하기 669

스파크 모니터링하기 670

  

요약 670

 

Chapter 18. 클러스터 리소스 튜닝, 맵리듀스 최적화 그리고 벤치마킹 671

   

얀 메모리와 CPU를 할당하는 방법 672

   메모리 할당하기 672

   CPU 코어 배정 설정하기 681

메모리와 CPU 가상 코어의 관계 682

  

효율적인 성능을 위한 설정 682

투기적 실행(Speculative Execution) 682

시스템의 I/O 로드 줄이기 685


맵과 리듀스 태스크 튜닝하기 - 관리자로서 할 수 있는 것 686

맵 태스크 튜닝하기 687

입력과 출력 688

리듀스 태스크 튜닝하기 691

맵리듀스 셔플 프로세스 튜닝하기 693

   

피그와 하이브 잡 최적화하기 696

하이브 잡 최적화 696

피그 잡 최적화하기 698

  

클러스터 벤치마킹 699

TestDFSIO를 사용해 I/O 성능 테스트하기 700

테라소트를 이용한 성능 측정 702

  

하둡 카운터 708

파일 시스템 카운터 710

잡 카운터 710

맵리듀스 프레임워크 카운터 711

커스텀 자바 카운터 712

카운터에 한계 정하기 713

  

맵리듀스 최적화하기 713

맵만 있는 잡과 맵과 리듀스가 있는 잡 713

컴바이너로 맵리듀스 성능을 높이는 방법 714

파티셔너를 이용해 성능 높이기 715

맵리듀스 프로세스 중에 데이터 압축하기 716

너무 많은 맵퍼 또는 리듀서를 사용한다면? 716

  

요약 719








Chapter 19.아파치 스파크 설치 및 튜닝 721

   

얀 위에서 동작하는 스파크를 위한 리소스 할당 설정하기 722

CPU 할당하기 722

메모리 할당하기 722

  

리소스가 스파크에 어떻게 할당되는가? 723

스파크 애플리케이션 리소스 할당 제한하기 724

드라이버에 리소스 할당하기 725

익스큐터에 대한 리소스 설정하기 729

스파크가 메모리를 사용하는 방법 732

기억해야 할 것들 735

클러스터 모드 또는 클라이언트 모드 737

스파크의 네트워크 매개변수 설정하기 739




얀에서 스파크 실행 시 동적 리소스 할당하기 739

동적 리소스 할당과 정적 리소스 할당 739

스파크가 동적 리소스 할당을 하는 방법 740

동적 리소스 할당 활성화하기 740




저장 포맷과 데이터 압축하기 742

저장 포맷 742

파일 사이즈 744

압축 744




  스파크 애플리케이션 모니터링하기 745

스파크 웹 UI를 이용해 성능 알아보기 745

스파크 시스템과 지표 REST API 748

얀에서 동작하는 스파크 히스토리 서버 748

명령 행으로 잡 추적하기 750

  

가비지 컬렉션 튜닝 750

가비지 컬렉션의 동작 751

GC 통계 정보를 수집하는 방법 752

  

스파크 스트리밍 애플리케이션 752

배치 프로세싱 시간 줄이기 752

올바른 배치 간격(Batch Interval) 설정하기 753

메모리 및 가비지 컬렉션(GC) 튜닝 753

 

요약 754

 

Chapter 20. 스파크 애플리케이션 최적화하기 755

   

  스파크 실행 모델 다시 보기 756

스파크 실행 모델 756

  

셔플 오퍼레이션과 셔플을 최소화하는 방법 758

WordCount 예제 다시 보기 759

셔플 오퍼레이션의 영향 760

셔플 매개변수 설정하기 761

  

파티셔닝과 병렬성(태스크의 수) 768

병렬 처리 정도 768

너무 적은 태스크 문제 771

파티션 수의 기본값 설정하기 771

파티션의 수를 증가시키는 방법 772

RDD의 파티션 수를 바꾸기 위해 RepartitionCoalesce 오퍼레이션을 사용하라. 773

두 가지 타입의 파티셔너 774

데이터 파티셔닝 그리고 셔플을 막을 수 있는 방법 775

  

데이터 직렬화 및 압축의 최적화 775

데이터 직렬화 775

압축 설정하기 776

  

스파크의 SQL Query 옵티마이저 이해하기 777

옵티마이저 단계 이해하기 778

스파크의 투기적 실행 기능 779

데이터 지역화의 중요성 780

  

데이터 캐시하기 782

캐시를 통한 장애허용(Fault-Tolerance) 783

캐시를 설정하는 방법 784

  

요약 789

 

 

Chapter 21. 하둡 문제 해결 790

   

  저장 용량 관련 이슈들 791

100%로 가득 차 있는 리눅스 파일 시스템 사용하기 792

HDFS 용량 문제 792

locallog 디렉토리에 여유 공간이 없을 때 793

디스크 볼륨 문제에 대한 대응 794

  

 얀의 멈춘 잡 처리하기 796







 JVM 메모리 할당과 가비지 컬렉션 전략 797

JVM 가비지 컬렉션 이해하기 797

가비지 컬렉션 최적화하기 799

메모리 사용량 분석하기 799

메모리 부족 에러(OOM) 800

애플리케이션마스터 메모리 이슈들 801

   

실패 종류에 따른 처리 802

데몬 실패 처리하기 803

하둡 데몬의 실행 문제 803

태스크와 잡 실패 804

  

스파크 잡 문제 해결하기 806

스파크의 장애 허용 메커니즘 806

스파크 잡 죽이기 806

잡에 대한 재시도 최댓값 806

잡당 최대 실패 횟수 807

   

스파크 애플리케이션 디버깅 807

로그 어그리게이션으로 로그 보기 807

로그 어그리게이션이 비활성화돼 있을 때 로그 보기 808

실행 환경 다시 보기 808

  

요약 808

 

부록 A 버추얼박스 및 리눅스 설치 그리고 가상 머신 복사하기 809

 

오라클 버추얼박스 설치하기 810

오라클 엔터프라이즈 리눅스 설치하기 811

리눅스 서버 복제하기 811

 

색인 813

 



  • 배송비 : 기본배송료는 2,500원 입니다. (도서,산간,오지 일부지역은 배송비가 추가될 수 있습니다)  10,000원 이상 구매시 무료배송입니다.
  • 본 상품의 평균 배송일은 3일입니다.(입금 확인 후) 설치 상품의 경우 다소 늦어질수 있습니다.[배송예정일은 주문시점(주문순서)에 따른 유동성이 발생하므로 평균 배송일과는 차이가 발생할 수 있습니다.]
  • 본 상품의 배송 가능일은 5일 입니다. 배송 가능일이란 본 상품을 주문 하신 고객님들께 상품 배송이 가능한 기간을 의미합니다. (단, 연휴 및 공휴일은 기간 계산시 제외하며 현금 주문일 경우 입금일 기준 입니다.)
  • 상품 청약철회 가능기간은 상품 수령일로 부터 7일 이내 입니다.
  • 상품 개봉으로 상품 가치 훼손 시에는 일 이내라도 교환 및 반품이 불가능합니다.
  • 저단가 상품, 일부 특가 상품은 고객 변심에 의한 교환, 반품은 고객께서 배송비를 부담하셔야 합니다(제품의 하자,배송오류는 제외)