이미 소장하고 있다면 판매해 보세요.
|
CHAPTER 1 소개
_1.1 빅데이터의 여명 _1.2 관계형 데이터베이스 시스템의 문제점 _1.3 비관계형 데이터베이스 시스템, Not-Only SQL인가 NoSQL인가? __1.3.1 기준 __1.3.2 확장성 __1.3.3 데이터베이스 (비)정규화 _1.4 구성 요소 __1.4.1 배경 __1.4.2 테이블, 로우, 컬럼, 셀 __1.4.3 자동 샤딩 __1.4.4 저장소 API __1.4.5 구현 __1.4.6 정리 _1.5 HBase : 하둡 데이터베이스 __1.5.1 역사 __1.5.2 용어 __1.5.3 정리 CHAPTER 2 설치 _2.1 속성 가이드 _2.2 요구 사항 __2.2.1 하드웨어 요구 사항 __2.2.2 소프트웨어 요구 사항 _2.3 HBase를 위한 파일시스템 __2.3.1 로컬 파일시스템 __2.3.2 하둡 파일시스템 __2.3.3 S3 __2.3.4 기타 파일시스템 _2.4 설치 시 선택 사항 __2.4.1 아파치 이진 릴리즈 __2.4.2 소스코드에서 빌드하기 _2.5 실행 방식 __2.5.1 단일 방식 __2.5.2 분산 방식 _2.6 설정 __2.6.1 hbase.site.xml 및 hbase.default.xml __2.6.2 hbase.env.sh __2.6.3 리전 서버 __2.6.4 log4j.properties __2.6.5 설정 사례 __2.6.6 클라이언트 설정 _2.7 배치 __2.7.1 스크립트 기반 __2.7.2 아파치 월 __2.7.3 퍼핏과 셰프 _2.8 클러스터 운용 __2.8.1 설치된 시스템 확정 및 운용 __2.8.2 웹 기반 UI 소개 __2.8.3 셸 소개 __2.8.4 클러스터 중단하기 CHAPTER 3 클라이언트 API : 기본 기능 _3.1 일반 정보 _3.2 CRUD 기능 __3.2.1 Put 메소드 __3.2.2 Get 메소드 __3.2.3 Delete 메소드 _3.3 일괄처리 연산 _3.4 로우 락 _3.5 스캔 __3.5.1 소개 __3.5.2 ResultScanner 클래스 __3.5.3 캐싱 대 일괄처리 _3.6 기타 기능 __3.6.1 HTable의 유틸리티 메소드 __3.6.2 Bytes 클래스 CHAPTER 4 클라이언트 API : 고급 기능 _4.1 필터 __4.1.1 필터 소개 __4.1.2 비교 필터 __4.1.3 전용 필터 __4.1.4 보조 필터 __4.1.5 필터 리스트 - FilterList __4.1.6 사용자 정의 필터 __4.1.7 필터 요약 _4.2 카운터 __4.2.1 카운터 소개 __4.2.2 단일 카운터 __4.2.3 복수 카운터 _4.3 보조 처리기 __4.3.1 보조 처리기 소개 __4.3.2 Coprocessor 인터페이스 __4.3.3 보조 처리기 로드 __4.3.4 RegionObserver 클래스 __4.3.5 MasterObserver 클래스 __4.3.6 엔드포인트 보조 처리기 _4.4 HTablePool _4.5 연결 처리 CHAPTER 5 클라이언트 API : 관리 기능 _5.1 스키마 정의 __5.1.1 테이블 __5.1.2 테이블 속성 __5.1.3 컬럼패밀리 _5.2 HBaseAdmin __5.2.1 기본 기능 __5.2.2 테이블 관련 기능 __5.2.3 스키마 관련 기능 __5.2.4 클러스터 관련 기능 __5.2.5 클러스터 상태 정보 CHAPTER 6 클라이언트 종류 _6.1 REST, 쓰리프트, 에이브로 _6.2 대화형 클라이언트 __6.2.1 네이티브 자바 __6.2.2 REST 서버 __6.2.3 쓰리프트 __6.2.4 에이브로 __6.2.5 기타 클라이언트 _6.3 일괄처리 클라이언트 __6.3.1 맵리듀스 __6.3.2 하이브 __6.3.3 피그 __6.3.4 캐스케이딩 _6.4 셸 __6.4.1 기본 사항 __6.4.2 명령어 __6.4.3 스크립팅 _6.5 웹 기반 UI __6.5.1 마스터 UI __6.5.2 리전 서버 UI __6.5.3 공통 페이지 CHAPTER 7 맵리듀스 연동 _7.1 프레임워크 __7.1.1 맵리듀스 소개 __7.1.2 주요 클래스 __7.1.3 지원 클래스 __7.1.4 맵리듀스의 집약성 __7.1.5 테이블 분할 _7.2 HBase 기반 맵리듀스 __7.2.1 준비 __7.2.2 데이터 타깃 __7.2.3 데이터 소스 __7.2.4 데이터 소스 및 타깃 __7.2.5 사용자 정의 클래스 CHAPTER 8 아키텍처 _8.1 탐색 대 전송 __8.1.1 B+ 트리 __8.1.2 LSM 트리 _8.2 저장소 __8.2.1 개요 __8.2.2 쓰기 경로 __8.2.3 파일 __8.2.4 HFile 형식 __8.2.5 KeyValue 형식 _8.3 WAL __8.3.1 개요 __8.3.2 HLog 클래스 __8.3.3 HLogKey 클래스 __8.3.4 WALEdit 클래스 __8.3.5 LogSyncer 클래스 __8.3.6 LogRoller 클래스 __8.3.7 재현 __8.3.8 지속성 _8.4 읽기 경로 _8.5 리전 탐색 _8.6 리전 생명주기 _8.7 주키퍼 _8.8 레플리케이션 __8.8.1 로그 변경 사항의 생명주기 __8.8.2 내부 동작 CHAPTER 9 고급 사용법 _9.1 키 설계 __9.1.1 개념 __9.1.2 가늘고 긴 테이블과 짧고 넓은 테이블 __9.1.3 부분 키 스캔 __9.1.4 페이지네이션 __9.1.5 시간적으로 연속된 데이터 __9.1.6 시간순으로 정렬된 관계 _9.2 고급 스키마 _9.3 보조 색인 __9.3.1 클라이언트에서 관리하는 방식 __9.3.2 Indexed-Transaction HBase(ITHBase) __9.3.3 Indexed HBase(IHBase) __9.3.4 보조 처리기 _9.4 검색 기능 연동 __9.4.1 클라이언트에서 관리하는 방식 __9.4.2 루씬 __9.4.3 HBasene __9.4.4 보조 처리기 _9.5 트랜잭션 __9.5.1 ITHBase __9.5.2 주키퍼 _9.6 블룸 필터 _9.7 버저닝 __9.7.1 자동 버저닝 __9.7.2 수동 버저닝 CHAPTER 10 클러스터 모니터링 _10.1 소개 _10.2 지표 측정 프레임워크 __10.2.1 상황정보, 레코드, 지표 __10.2.2 마스터 지표 __10.2.3 리전 서버 지표 __10.2.4 RPC 지표 __10.2.5 JVM 지표 __10.2.6 기본 정보 지표 _10.3 갱글리아 __10.3.1 설치 __10.3.2 사용하기 _10.4 JMX __10.4.1 제이콘솔 __10.4.2 JMX 원격 API _10.5 나기오스 CHAPTER 11 성능 조율 _11.1 가비지 컬렉션 조율 _11.2 멤스토어 로컬 할당 버퍼 _11.3 압축 __11.3.1 가용 코덱 __11.3.2 설치 확인 __11.3.3 압축 기능 활성화 _11.4 분할 및 컴팩션 최적화 __11.4.1 분할 수동 관리 __11.4.2 리전 핫스팟 처리 __11.4.3 리전의 사전 분할 _11.5 로드밸런싱 _11.6 리전 병합 _11.7 클라이언트 API 모범 사례 _11.8 설정 _11.9 부하 테스트 __11.9.1 성능 평가 __11.9.2 YCSB CHAPTER 12 클러스터 관리 _12.1 클러스터 운용 작업 __12.1.1 노드 디커미션 __12.1.2 단계적 재시작 __12.1.3 서버 추가 _12.2 데이터 작업 __12.2.1 들여오기 및 내보내기 도구 __12.2.2 테이블 복제 도구 __12.2.3 대용량 데이터 들여오기 __12.2.4 레플리케이션 _12.3 추가 작업 __12.3.1 공존 클러스터 __12.3.2 포트 설정 _12.4 로그 레벨 변경 _12.5 문제 해결 __12.5.1 HBase Fsck __12.5.2 로그 분석 __12.5.3 공통 문제 부록 A : HBase 설정 속성 부록 B : 릴리즈 노트 부록 C : HBase 버전 업그레이드 부록 D : 배포판 부록 E : 허시 SQL 스키마 부록 F : HBase 대 빅테이블 |
|
그동안 대부분 별다른 고민 없이 RDBMS를 채택하면 되던 데이터베이스 분야에 느닷없이 수십 가지 대안이 한꺼번에 밀어닥쳤다. NoSQL이라는 다소 억지스러운 용어는 의외로 상당한 파괴력을 지녀, 사실상 서로 아무런 연관성도 없는 비 RDBMS 진영의 데이터베이스들을 하나의 세력처럼 보이게 하는 데 성공했고, 급기야 수십 년간 이어온 RDBMS의 아성을 위협하기에 이르렀다.
상황이 이렇게 된 데는 ‘확장성’이라는 테마가 중요한 역할을 했다. 어느새 우리가 만든 시스템은 전 세계적인 규모로 확장해도 버틸 수 있는가 하는 질문에 대답할 수 있어야 했다. 기존의 RDBMS만으로는 그 질문에 대답하기 곤란하기 때문이다. 그렇다면 과연 대안은 있는가? 데이터베이스 분야가 갑자기 혼란에 빠진 이유는, 이 대안을 찾는 여정이 만만치 않기 때문이다. 지금은 다양한 데이터베이스들을 단순히 데이터가 저장되는 모양새, 장단점, 기본적인 특성의 파악만으로 입맛에 맞게 골라서 쓰기만 하면 되는 시대가 아니다. 이제는 각 제품이 내부적으로 사용한 알고리즘은 물론이고 네트워크, 메모리, 저장 장치 등의 자원을 관리하는 방식에 대한 이해가 반드시 뒷받침되어야 한다. 일반적으로 NoSQL 진영의 제품들은 RDBMS로 충족하기 힘든 특정 목적을 달성하기 위해 개발되었다가 범용으로 공개되었다. 그런데 장점을 달성하기 위해 반드시 포기할 수밖에 없는 단점이 공존하기 마련이다. 따라서 깊은 이해 없이 섣불리 실전에 도입했다가 돌이킬 수 없는 낭패를 볼 수 있다. 이 책에서 소개하는 HBase는 언제나 최우선적으로 검토되는 NoSQL로서, 구글 빅테이블의 클론이다. 현재 구글은 빅테이블 이후 메가스토어에 이은 스패너의 발표로 저만치 앞서 달려가고 있지만, HBase는 이미 독자적으로 강력한 생태계를 구축하고 있는 하둡이 든든하게 뒤를 받쳐주고 있다. 또한 페이스북에서 운용하고 있는 HBase 클러스터는 다른 오픈소스 제품들이 감히 범접할 수 없는 압도적인 규모의 레퍼런스를 제공하고 있다. 그동안 HBase를 도입하는 데는 어려움이 따랐다. 무엇보다 설치와 설정이 다른 제품에 비해 상당히 복잡하고, 무수히 많은 기능 중 자신에게 필요한 것들을 잘 가려내어 사용하는 일 자체도 어렵다. 이 책은 HBase에 대해 그 두께만큼이나 자세하고 깊이 있는 분석을 제공한다. 개발 중인 시스템에 적합한 데이터베이스를 찾고 있는 동료 개발자분들께 이 책이 조금이라도 도움이 되었으면 하는 바램이다. ---「옮긴이의 글」 중에서 |
|
페이스북, 트위터, 야후가 선택한 실시간 랜덤 엑세스 NoSQL!
거의 무한한 데이터를 수용하는, 확장성 있는 스토리지 솔루션을 찾는다면 페이스북, 트위터, 야후가 선택한 아파치 HBase가 그 해답이다. 구글 빅테이블의 오픈소스 구현인 HBase는 수십억 개의 로우와 수백만 개의 컬럼을 저장하면서도 안정적인 입출력 성능을 보장한다. HBase 커미터가 쓴 이 책은 HBase에 대한 여러분의 질문에 의미 있는 대답을 선사할 것이다. 커미터가 쓴 ‘HBase’의 정수 모두가 코딩에 몰두할 때 끊임없이 문서화를 주창하고 문서화한 커미터 라스 조지보다 HBase에 대해 더 완벽하게 설명할 사람은 이 세상에 없을 것이다. 이 책은 ‘완벽 가이드’라는 이름에 걸 맞게 HBase를 내려받고, 빌드하고, 실행하고, 운용하고, 개발하는 데 필요한 방대한 내용이 담겨 있다. HBase 버전에 대하여 HBase는 지금 이 순간에도 빠른 속도로 개발이 진행 중이다. 이 책은 HBase 0.91.0 버전의 리비전 1130916 및 당시 준비 중이던 0.92.0 버전의 로드맵을 기준으로 집필되었으며, 번역이 완료된 시점의 HBase 버전은 0.94.2다. 이후 릴리즈 내용은 ‘부록 B’에 반영해두었다(다행스럽게도 변경된 내용이 많지 않다). 리비전 1130916 이래부터 현재까지 변경된 API는 저자가 관리하는 JDiff 페이지에서 추적할 수 있다. 대상 독자 ? NoSQL을 사용하는 개발자 ? 클라우드 관련 개발자 ? 분산 시스템과 데이터베이스를 연구하는 석사 이상 간략한 이 책의 내용 ? 하둡과의 긴밀한 연동을 통해 HBase의 확장성에 날개를 달자. ? 범용 PC로 구성된 클러스터에 대용량 데이터를 분산시키자. ? REST, 에이브로, 쓰리프트 API를 제공하는 게이트웨이 서버 환경에 맞게 HBase 클라이언트를 구성하자. ? 저장 파일 포맷, WAL, 백그라운드 프로세스에 대해 상세히 알아보자. ? HBase를 하둡 맵리듀스 프레임워크와 연동하여 대규모 병렬 데이터 처리 작업을 수행하자. ? 클러스터 설정, 스키마 설계, 테이블 복제, 대용량 데이터 들여오기, 노드 삭제 등의 기술을 익혀보자. |