아파치 Storm을 이용한 분산 실시간 빅데이터 처리
도서+교보Only(교보배송)을 함께 15,000원 이상 구매 시 무료배송
15,000원 미만 시 2,500원 배송비 부과
20,000원 미만 시 2,500원 배송비 부과
15,000원 미만 시 2,500원 배송비 부과
1Box 기준 : 도서 10권
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
작가정보
저자 테일러 게츠(P. Taylor Goetz)는 아파치 스톰 커미터이자 배포 관리자다. 오픈소스로 스톰의 첫 번째 배포판을 발표한 2011년 10월부터 스톰을 개발하고 사용했다. 스톰 사용자 그룹에서 활동하는 기여자(contributor)로서 기업이 스톰을 이기종 인프라와 통합해 사용할 수 있게 하는 몇 가지 오픈소스 프로젝트를 이끌고 있다. 현재 호튼웍스(Hortonworks)에서 호튼웍스 데이터 플랫폼(HDP)에 스톰을 통합하는 일을 주도하고 있다. 호튼웍스에 입사하기 전엔 HMS(Health Market Science)에서 일을 했다. HMS에서 스톰을 카산드라(Cassandra), 카프카(Kafka), 일래스틱서치(Elasticsearch), 타이탄(Titan) 그래프 데이터베이스와 함께 통합하여 HMS의 차세대 마스터 데이터 관리 플랫폼의 개발을 이끌었다.
저자(글) 브라이언 오닐
저자 브라이언 오닐(Brian O’Neill)은 한 여자의 남편이자 해커이며, 여행과 카약을 즐긴다. 빅데이터 신봉자이자 혁신가이며 분산 컴퓨팅 공상가인 동시에 낚시를 즐기는 아버지다. 15년이 넘게 기술 리더로 일을 했고 빅데이터의 권위자로 알려져 있으며, 스타트업부터 포춘 500대 기업에 이르기까지 다양한 회사에서 아키텍트로 일을 했다. 오픈소스를 믿으며 많은 프로젝트에 기여했고, 카산드라 확장 프로젝트로서, 데이터베이스에 인덱싱 엔진, 분산 처리 프레임워크, 분석 엔진을 통합하는 프로젝트를 이끌고 있다. 또한 2013년에 인포월드(InfoWorld)에서 수여하는 기술 리더십상을 받았다. 디존(Dzone)의 무료 치트시트인 카산드라 레퍼런스 카드(Refcardz) 문서를 작성했으며, 2012년과 2013년에는 데이터스택스(Datastax) 카산드라 MVP에 선정되었다. 과거에 자바 커뮤니티 프로세스(JCP)의 전문가 그룹에서도 활동했고, 인공지능과 문맥 기반 발견(context-based discovery) 특허를 보유하고 있다. 브라운대학교에서 컴퓨터과학 학위를 받은 것을 자랑스럽게 여긴다. 현재는 HMS(Health Market Science)의 기술책임자(CTO)로서, 헬스케어 분야의 데이터 관리와 분석에 특화된 자사의 빅데이터 플랫폼 개발을 이끌고 있다. 이 플랫폼은 스톰과 카산드라를 기반으로 만들어졌고 실시간 데이터 관리과 분석을 서비스로 제공한다.
번역 이종희
역자 이종희는 귀여운 손자, 손녀들이 생길 때까지 즐겁게 소프트웨어를 개발하며 살고 싶은 대한민국의 평범한 개발자 중 한 명이다. 자바 오피스를 개발을 시작으로 개발자의 길에 들어섰고, 지난 5년간 하둡을 이용한 빅데이터 솔루션 개발을 해왔다. 현재는 IoT 스타트업에서 제품 출시를 위해 밤낮없이 개발 중이다.
목차
- 1장 분산 단어 세기
스톰의 기본 구성 요소: 토폴로지, 스트림, 스파우트, 볼트
스트림
스파우트
볼트
단어 세기 토폴로지의 데이터 흐름
문장 생성 스파우트
문장 나누기 볼트
단어 세기 볼트
결과 출력 볼트
단어 세기 토폴로지 구현
개발 환경 구축
문장 생성 스파우트 구현
문장 나누기 볼트 구현
단어 세기 볼트 구현
결과 출력 볼트 구현
단어 세기 토폴로지 구현
스톰의 병렬성
WordCountTopology의 병렬성
토폴로지에 워커 추가
익스큐터와 태스크 수 설정
스트림 그룹핑
처리 보장
스파우트의 신뢰성
볼트의 신뢰성
신뢰성 있는 단어 세기
정리
2장 스톰 클러스터 설정
스톰의 구조
님버스 데몬
수퍼바이저 데몬
아파치 주키퍼
스톰의 DRPC 서버
스톰 UI
스톰의 기반 기술
자바와 클로저
파이썬
리눅스에 스톰 설치
운영체제 설치
자바 설치
주키퍼 설치
스톰 설치
스톰 데몬 실행
스톰 설정
필수 설정
선택 설정
스톰 실행 파일
워크스테이션에 스톰 실행 파일 설치
데몬 명령어
님버스
수퍼바이저
UI
DRPC
관리 명령어
Jar
Kill
Deactivate
Activate
Rebalance
Remoteconfvalue
로컬 디버그/개발 명령어
REPL
Classpath
Localconfvalue
스톰 클러스터에 토폴로지 제출
클러스터 설정 자동화
퍼펫 간략히 살펴보기
퍼펫 매니페스트
퍼펫 클래스와 모듈
퍼펫 템플릿
퍼펫 히에라를 이용한 환경 관리
히에라 소개
정리
3장 트라이덴트 토폴로지와 센서 데이터
예제 설명
트라이덴트 토폴로지
트라이덴트 스파우트
트라이덴트 연산: 필터와 함수
트라이덴트 필터
트라이덴트 함수
트라이덴트 집계 - 컴바이너와 리듀서
CombinerAggregator
ReducerAggregator
Aggregator
트라이덴트 상태
반복 트랜잭션 상태
오파큐 상태
토폴로지 실행
정리
4장 실시간 트렌드 분석
사용 예
아키텍처
로그 수집 대상 애플리케이션
logback 카프카 어펜더
아파치 카프카
카프카 스파우트
XMPP 서버
필수 소프트웨어 설치
카프카 설치
오픈파이어 설치
샘플 애플리케이션 소개
카프카로 메시지 보내기
로그 분석 토폴로지 소개
카프카 스파우트
JSON 프로젝트 함수
이동 평균 계산하기
슬라이딩 윈도우 추가
이동 평균 함수 구현
한계값 기준으로 필터링
XMPP를 이용해 알림 보내기
토폴로지 완성
로그 분석 토폴로지 실행
정리
5장 실시간 그래프 분석
사용 예
아키텍처
트위터 클라이언트
카프카 스파우트
타이탄 분산 그래프 데이터베이스
그래프 데이터베이스 간략 소개
그래프 접근: TinkerPop의 구성요소
블루프린트 API를 이용해 그래프 조작
그렘린 셸을 이용해 그래프 조작
소프트웨어 설치
타이탄 설치
타이탄의 백엔드 스토리지를 카산드라로 설정
카산드라 설치
백엔드 스토리지가 카산드라인 타이탄 실행하기
그래프 데이터 모델
트위터 스트림 연결하기
Twitter4J 클라이언트 설정
OAuth 설정
TwitterStreamConsumer 클래스
TwitterStatusListener 클래스
트위터 그래프 토폴로지
JSONProjectFunction 클래스
GraphState 구현
GraphFactory
GraphTupleProcessor
GraphStateFactory
GraphState
GraphUpdater
GraphFactory 구현
GraphTupleProcessor 구현
모두 합치기: TwitterGraphTopology 클래스
TwitterGraphTopology 클래스
그렘린으로 그래프 질의
정리
6장 인공지능
사용 예 설계
아키텍처
설계 도전 해결
재귀 구현
함수의 반환값에 접근
불변 튜플 필드 값
Upfront 필드 선언
재귀에서 튜플 확인 메시지 받기
다수의 스트림 출력
쓰기 전 읽기
문제점 해결
아키텍처 구현
데이터 모델
재귀 토폴로지 살펴보기
큐와의 연동
함수와 필터
점수 계산 토폴로지 살펴보기
쓰기 전 읽기 문제 해결
게임 트리 순환
분산 원격 프로시저 콜(DRPC)
원격 배포
정리
7장 드루이드와 스톰을 이용한 금융 분석
사용 예
비트랜잭션 시스템과 통합
토폴로지
스파우트
필터
상태 설계
아키텍처 구현
DruidState
StormFirehose 객체 구현
주키퍼에 파티션 상태 구현
구현체 실행
분석
정리
8장 자연어 처리
람다 아키텍처가 나온 배경
사용 예 설명
람다 아키텍처 실현
사용 예를 위한 토폴로지 설계
설계 구현
TwitterSpout/TweetEmitter
함수
TweetSplitterFunction
WordFrequencyFunction
PersistenceFunction
분석 살펴보기
배치 처리/과거 이력 분석
하둡
맵리듀스 개요
드루이드 설정
HadoopDruidIndexer
정리
9장 스톰 온 하둡으로 광고 분석
사용 예
아키텍처 구축
HDFS
얀
인프라 설치
하둡 인프라
HDFS 설치
네임 노드 설치
데이터 노드 설치
얀 설치
노드관리자 설치
분석 배포
피그 인프라로 배치 분석
스톰 얀 인프라로 실시간 분석
분석
배치 분석
실시간 분석
토폴로지 배포
토폴로지 실행
정리
10장 클라우드에서 스톰 실행
아마존 일래스틱 컴퓨팅 소개
AWS 계정 생성
AWS 관리 콘솔
SSH 키 쌍 생성
EC2 인스턴스 수동으로 띄우기
EC2 인스턴스에 로그인
아파치 훠 소개
훠 설치
훠를 이용해 스톰 클러스터 설치
클러스터 띄우기
훠 스톰 소개
훠 스톰 설치
클러스터 설정
스톰 설정 커스터마이징
방화벽 규칙 커스터마이징
베이그란트 소개
베이그란트 설치
첫 번째 가상 머신 띄우기
Vagrantfile과 공유 파일 시스템
베이그란트 프로비저닝
베이그란트로 복수 머신 클러스터 설정
스톰 프로비저닝 스크립트 제작
주키퍼
스톰
수퍼바이저디
스톰 vagrantfile
스톰 클러스터 띄우기
정리
출판사 서평
★ 요약 ★
이 책은 광범위한 분산 연산 주제에 대해 다루고 설계와 통합 패턴뿐만 아니라 이 기술을 유용하게 바로 적용할 수 있는 분야와 애플리케이션을 다룬다. 또한 간단한 스톰(Storm) 토폴로지부터 실전에서 사용하는 스톰까지 알려준다. 점점 더 복잡해지는 예제를 이용해 고급 스톰 개념을 설명할 뿐만 아니라 배포와 운영에 대한 고급 기술도 다룬다.
★ 이 책에서 다루는 내용 ★
■ 스톰의 기초
■ 수도(pseudo) 분산 모드와 분산 모드 스톰 설치 및 설정
■ 트라이덴트와 분산 상태의 기초 개념
■ 분산 시스템의 디자인 패턴과 데이터 플로우
■ 타이탄(Titan) 등의 저장 기술과 스톰을 통합하는 방법
■ 얀(YARN)에 스톰을 배포하고 실행하는 방법
■ 분산 저장소를 이용해 지속적인 가용성과 장애 극복할 있는 시스템 구축
■ 중앙 집중된 로깅과 처리 방법
■ 폴리그랏(polyglot) 저장과 분산 트랜잭션 구현
■ 클릭스루(click-through) 분석을 통한 광고 캠페인 효과 계산
★ 이 책의 대상 독자 ★
이 책은 스톰에서 자바로 개발하는 방법에 대한 것이지만 운영자, 아키텍트, 개발자를 대상으로 쓰여졌다. 또한 하둡(Hadoop) 전문가들을 위한 훌륭한 스톰 소개서이며 배치 처리를 실시간 분석으로 바꾸는 방법을 기술한 훌륭한 가이드다.
★ 이 책의 구성 ★
1장, ‘분산 단어 세기’ 스톰을 이용한 분산 스트림 처리의 핵심 개념을 소개한다. 분산 단어 세기 예제는 훨씬 복잡한 연산에서 필요한 많은 구조, 기술, 패턴을 보여준다. 이 장에서는 스톰 연산의 구조 및 기초 개념을 배울 것이다. 개발 환경을 구축하고 스톰 애플리케이션을 디버깅하고 개발할 때 필요한 기술을 설명한다.
2장, ‘스톰 클러스터 설정’ 스톰의 기술 기반에 대해 자세히 알아보며, 스톰 클러스터를 설치하고 배포하는 과정에 대해 설명한다. 또한, 퍼펫(Puppet)이라는 프로비저닝 툴을 이용해 다중 노드(multi node)로 구성된 스톰 클러스터의 설치 및 설정을 자동화하는 방법에 대해서도 다룬다.
3장, ‘트라이덴트 토폴로지와 센서 데이터’ 트라이덴트 토폴로지에 대해 다룬다. 트라이덴트는 스톰 위에 구현된 고수준 추상화 구현체이다. 트라이덴트는 복잡한 트랜잭션 처리와 상태 관리를 숨겨준다. 이 장은 질병 발생을 탐지하기 위해 트라이덴트를 적용해 센서 데이터를 처리, 집계, 필터링해본다.
4장, ‘실시간 트렌드 분석’ 스톰과 트라이덴트를 이용한 트렌드 분석 기술을 소개한다. 여기서 말하는 실시간 트렌드 분석이란 데이터 스트림에서 패턴을 인지하는 것을 말한다. 이 장은 이동 평균(moving average)을 계산하기 위해 스톰을 아파치 카프카(Kafka)와 통합해 슬라이딩 윈도우(sliding window)를 구현한다.
5장, ‘실시간 그래프 분석’ 그래프 데이터베이스에 데이터를 저장한 다음 스톰을 이용해서 데이터를 조회해 관계(relationship)를 찾아내는 그래프 분석을 구현해본다. 그래프 데이터베이스는 데이터를 꼭지점(vertex), 변(edge), 속성(property)으로 구성된 그래프 구조로 저장하는 데이터베이스다. 그리고 엔티티(entity) 간의 관계에 대해 주로 집중한다. 또한, 스톰과 유명한 그래프 데이터베이스인 타이탄(Titan)을 통합하여 트위터 데이터를 분석하는 방법도 알아본다.
6장, ‘인공지능’ 일반적으로 재귀를 이용해 구현되는 인공지능 알고리즘에 스톰을 적용한다. 스톰의 한계점에 대해 알아보고 이러한 한계를 극복하는 패턴에 대해 설명한다. 또한 분산 원격 프로시저 콜(DRPC)을 이용해 틱택토(tic-tac-toe)의 가장 좋은 다음 수(move)를 동기적으로 반환하는 스톰 토폴로지를 구현한다.
7장, ‘드루이드와 스톰을 이용한 금융 분석’ 스톰과 비트랜잭션(non-transactional) 시스템을 통합할 때 생기는 복잡성에 대해 설명한다. 분산 상태를 관리해 주는 주키퍼(ZooKeeper)를 활용해 통합하는 패턴을 보여준다. 이 장은 스톰과 오픈소스 탐구 분석(exploratory analytics) 툴인 드루이드를 통합하여 금융 이벤트를 분석하는 설정을 할 수 있는 실시간 시스템을 만들어 본다.
8장, ‘자연어 처리’ 람다 아키텍처(Lambda architecture)를 소개한다. 람다 아키텍처는 실시간 기술과 배치 기술을 조합해 오염된 분석 데이터를 자동 복구할 수 있는 아키텍처다 이 장에서는 드루이드와 스톰을 이용한 금융 분석에서 만든 시스템에 하둡 인프라를 추가하고 맵리듀스 잡을 이용해 호스트 장애로 오염되거나 잃어버린 드루이드 분석 결과를 다시 복구한다.
9장, ‘스톰 온 하둡으로 광고 분석’ 하둡에서 동작하는 피그 스크립트로 된 배치 프로세스를 실시간 스톰 토폴로지로 바꾸는 것을 보여준다. 이를 하기 위해 스톰얀(Storm-YARN)이 필요한데, 스톰얀은 얀에 스톰 클러스터를 배포하고 실행할 수 있게 해준다. 하둡 위에 스톰을 실행하면 기업이 동일한 인프라에서 실시간 처리와 배치 처리를 동시에 할 수 있게 하여 통합된 운영환경을 제공한다.
10장, ‘클라우드에서 스톰 실행’ 스톰을 클라우드 호스팅 서비스에 배포하고 실행시키는 가장 좋은 방법들을 소개한다. 특히 아마존 웹 서비스(AWS) 일래스틱 컴퓨트 클라우드(EC2)에 프로비저닝된 인프라 위에 스톰과 스톰의 지원 기술을 배포하고 설정하기 위해 클라우드 서비스를 위한 라이브러리 집합인 아파치 훠(Whirr)를 활용한다. 게다가 베이그란트(Vagrant)를 이용해 개발과 테스트 용도인 클러스터 환경을 생성할 것이다.
★ 지은이의 말 ★
스톰은 실시간 스트림 처리에 가장 많이 사용되는 프레임워크다. 스톰은 대규모 미션 크리티컬(mission-critical) 장애 극복(fault-tolerant) 분산 애플리케이션에서 필요한 기본 기능과 보장(guarantee)을 제공한다. 스톰은 통합 기술일 뿐만 아니라 데이터 플로우와 제어 기술이다. 이런 기능을 통해 스톰은 많은 빅데이터 플랫폼의 핵심 구성요소가 되었다.
이 책은 스톰을 실세계 문제에 적용하는 방법을 소개한다. 간단한 스톰 토폴로지부터 트라이덴트, 분산 상태 같은 고급 주제까지 다룬다. 또한 드루이드(Druid)와 타이탄(Titan)과 통합하는 방법도 소개한다.
이 책을 다 읽고 나면 스톰과 트라이덴트의 핵심 개념에 대해 알 수 있게 되고 스톰과 트라이덴트를 적용할 수 있는 문제를 구별할 수 있다. 또한 필요한 곳에 적용할 수 있게 될 것이다.
★ 옮긴이의 말 ★
빅데이터라는 말이 세상에 나온 지도 벌써 수년이 지났다. 이제는 빅데이터를 분석한 결과를 인용하는 뉴스와 기사도 일상에서 간간히 볼 수 있다. 빅데이터가 우리 생활 가까이에 다가온 것이다. 빅데이터는 그 자체만으로는 가치가 없지만 분석을 하여 그 속의 숨겨진 의미를 찾아낸다면 기존의 방식으로는 찾아내기 어려운 소중한 정보를 얻어낼 수 있다. 이 소중한 정보를 활용할 수 있는 기업은 다른 기업들보다 몇 걸음 더 앞서 나갈 수 있게 될 것이다.
하둡 에코 시스템을 활용하여 빅데이터를 분석하던 기업들은 이제 하루 또는 며칠 전의 분석 결과가 아닌 지금 현재 상황의 분석 결과를 실시간으로 보고 싶은 욕구가 생겼다. 그 결과물로 나온 것 중 하나가 바로 이 책에서 설명하는 스톰이다. 스톰은 트위터에 인수된 SNS 분석 기업인 백타이프(BackType)에서 시작된 오픈소스로서, 아파치로 이전되어 인큐베이팅을 거친 다음, 2014년 12월에 인큐베이팅을 졸업하고 아파치 정식 프로젝트로 승격된 프로젝트다.
스톰을 이용하면 스파우트(spout), 볼트(bolt)라는 단 두 가지의 구성요소를 조합해 비교적 쉽게 빅데이터를 실시간으로 처리할 수 있다. 하지만, 자바 클래스가 무엇인지 안다고 혹은 C의 함수가 무엇인지 안다고 해서 복잡한 프로그램을 짤 수 없듯이 스파우트, 볼트 클래스의 스펙만 아는 것으로는 실시간 빅데이터 처리를 하기 힘들 것이다.
하둡에도 다양한 에코 시스템들이 있는 것처럼 스톰도 다양한 다른 시스템과 협업해 결과를 도출한다. 이 책에서 설명하는 것이 바로 이런 내용들이다.
이 책은 스톰과 다양한 오픈소스를 활용하는 실제로 현업에서 사용하는 실시간 빅데이터 처리 기법을 설명한다. 이 책을 통해 현업의 빅데이터 엔지니어들에게 도움이 많이 되었으면 하는 바람이다.
기본정보
ISBN | 9788960776715 | ||
---|---|---|---|
발행(출시)일자 | 2015년 02월 17일 | ||
쪽수 | 380쪽 | ||
크기 |
188 * 235
* 22
mm
/ 895 g
|
||
총권수 | 1권 | ||
시리즈명 |
acorn+PACKT 시리즈
|
||
원서명/저자명 | Storm Blueprints: Patterns for Distributed Real-time Computation/P. Taylor Goetz |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립