이미 소장하고 있다면 판매해 보세요.
|
1장. SMACK 소개
__최신 데이터 처리 문제 __데이터 처리 파이프라인 아키텍처 ____NoETL 선언문 ____람다 아키텍처 ____하둡. __SMACK 기술 ____아파치 스파크 ____아카 ____아파치 카산드라 ____아파치 카프카 ____아파치 메소스 __데이터 센터 운영 변경 ____스케일 업부터 스케일 아웃까지 ____오픈소스 우위 ____데이터 저장소 다변화 ____데이터 중력 및 데이터 지역 ____개발자 운영 규칙 __데이터 전문가 프로필 ____데이터 아키텍트 ____데이터 엔지니어 ____데이터 애널리스트 ____데이터 사이언티스트 __나를 위한 SMACK인가 __요약 2장. 모델: 스칼라와 아카 __언어: 스칼라 ____카타 1: 컬렉션 계층구조 ____카타 2: 올바른 컬렉션 선택 ____카타 3: foreach 순회 ____카타 4: for 순회 ____카타 5: 반복자 ____카타 6: 맵으로 변환하기 ____카타 7: flatten ____카타 8: filter ____카타 9: 하위 시퀀스. ____카타 10: split ____카타 11: 유일한 엘리먼트 추출 ____카타 12: 병합 ____카타 13: 게으른 뷰 ____카타 14: 정렬 ____카타 15: 스트림 ____카타 16: 배열 ____카타 17: ArrayBuffer ____카타 18: 큐 ____카타 19: 스택 ____카타 20: 범위 __모델: 아카 ____액터 모델 요약 ____카타 21: 액터 ____카타 22: 액터 통신 ____카타 23: 액터 생명 주기 ____카타 24: 액터 시작 ____카타 25: 액터 중지카타 26: 액터 종료 ____카타 27: 액터 시스템 셧다운 ____카타 28: 액터 모니터링 ____카타 29: 액터 검색. ____요약 3장. 엔진: 아파치 스파크 __싱글 모드의 스파크 ____아파치 스파크 다운로드 ____아파치 스파크 테스트 __스파크 핵심 개념. __RDD ____스파크 애플리케이션 실행 ____스파크 컨텍스트 초기화 ____스파크 애플리케이션 ____프로그램 실행 ____RDD 오퍼레이션 ____영속화(캐싱) __클러스터 모드의 스파크. ____런타임 아키텍처 ____스탠드얼론 클러스터 매니저 __스파크 스트리밍 ____스파크 스트리밍 아키텍처 ____트랜스포메이션 ____출력 오퍼레이션 ____내결함성을 지닌 스파크 스트리밍 ____스파크 스트리밍 성능 ____윈도우 크기와 배치 크기 ____가비지 콜렉터 __요약 4장. 스토리지: 아파치 카산드라 __역사 __NoSQL ____NoSQL 또는 SQL? ____브루어의 CAP 이론172 __아파치 카산드라 설치.. ____데이터 모델 ____데이터 스토리지 ____설치 ____데이터스택스 옵스센터.. ____키 스페이스 생성 __인증과 권한(역할) ____간단한 인증과 권한을 설정 __백업 ____압축 __복구 ____재시작 노드 ____스키마 출력 ____로그 ____log4j 설정 ____로그 파일 로테이션 ____사용자 활동 로그 ____트랙잭션 로그 ____SQL 덤프 ____CQL.. ____DBMS 클러스터 ____DB와 DBMS의 최적화 ____블룸 필터 ____데이터 캐시 ____자바 힙 조정 ____자바 가비지 컬렉션 조정 ____뷰, 트리거, 저장 프로시저 ____클라이언트-서버 아키텍처 __스파크 카산드라 커넥터 ____커넥터 설치 ____커넥션 연결 ____커넥터 사용 __요약 5장. 브로커: 아파치 카프카 __카프카 소개 ____아파치 카프카 기능 ____빠른 데이터가 되기 위해 태어남 ____사용 사례 __설치 ____자바 설치 ____카프카 설치 ____카프카 임포트 __클러스터 ____단일 노드 - 단일 브로커 클러스터 ____단일 노드 - 다중 브로커 클러스터 ____다중 노드-다중 브로커 클러스터 ____브로커 속성 __아키텍처 ____세그먼트 파일 ____오프셋 ____리더 ____그룹 ____로그 컴팩션 ____카프카 설계 ____메시지 압축 ____복제 __프로듀서 ____프로듀서 API ____스칼라 프로듀서 ____자체 파티션을 가진 프로듀서 ____프로듀서 설정 __컨슈머 ____컨슈머 API ____간단한 스칼라 컨슈머 ____멀티 스레드 스칼라 컨슈머 __통합 ____아파치 스파크와 통합 __관리 ____클러스터 툴 ____서버 추가 ____카프카 토픽 툴 ____클러스터 미러링 __요약 6장. 관리자: 아파치 메소스 __아파치 메소스 아키텍처 ____프레임워크 ____기존 메소스 프레임워크 ____속성과 자원 ____아파치 메소스 API __자원 할당 ____DRF 알고리즘 ____가중치 적용 DRF 알고리즘 ____자원 설정 ____자원 예약 __AWS에서 메소스 클러스터 실행하기 ____AWS 인스턴스 타입 ____AWS에 메소스 설치 ____메소스 다운로드 ____메소스 구축 __사설 데이터 센터에서 메소스 클러스터의 실행 ____메소스 설치 ____메소스의 일반적인 이슈 __스케줄링과 매니지먼트 프레임워크 ____마라톤 ____크로노스 ____크로노스와 마라톤 __아파치 오로라 ____오로라 설치 __싱귤래리티 ____싱귤래리티 설치 __아파치 메소스에서의 아파치 스파크 ____클라이언트 모드에서 작업 제출 ____클러스터 모드에서 작업 제출 ____추가 설정 __아파치 메소스에서 아파치 카산드라 사용 ____추가 설정 __아파치 메소스에서 아파치 카프카 사용 ____카프카 로그 관리 __요약 7장. 사례 연구 1: 스파크와 카산드라 __스파크 카산드라 커넥터 ____필수 요건 ____카산드라 준비 ____스파크 컨텍스트 설정 ____카산드라와 스파크 스트리밍 ____스파크 스트리밍 설정 ____카산드라 설정 ____스트리밍 컨텍스트 생성 ____스트림 생성 ____데이터 집합을 카산드라로 저장 ____카산드라의 객체 저장(사용자 정의 타입) ____카산드라 옵션을 스칼라 옵션으로 변환 ____RDD를 새로운 테이블로 저장 ____클러스터 배포 ____스파크 카산드라 사용 사례 __연구 사례: 칼리오페 프로젝트 ____칼리오페 설치 ____CQL3 ____스리프트 ____칼리오페 SQL 컨텍스트 생성 ____칼리오페 SQL 설정 __요약 8장. 사례 연구 2: 커넥터 __아카와 카산드라 ____카산드라에 저장 ____카산드라에서 읽기 ____카산드라에 연결 ____검색할 트윗 ____검색 테스트 __아카와 스파크 __카프카와 아카 __카프카와 카산드라 __요약 9장. 사례 연구 3: 메소스와 도커 __메소스 프레임워크 API ____인증, 권한, 접근 제어 ____프레임워크 인증 ____인증 설정 ____프레임워크 권한 ____접근 제어 목록 __스파크 메소스의 실행 모드 ____코오스 그레인드 모드 ____파인 그레인드 모드 __아파치 메소스 API ____스케줄러 HTTP API __메소스 컨테이너라이저 ____컨테이너 __도커 컨테이너라이저 ____컨테이너와 컨테이너라이저 ____컨테이너라이저 타입 ____컨테이너라이저 생성 ____메소스 컨테이너라이저 ____도커 컨테이너라이저 ____컨테이너라이저 결합 __요약 |
Raul Estrada
김용환의 다른 상품
|
이 책에서 다루는 내용
빠른 데이터 파이프 라인 아키텍처 설계 및 구현 스칼라로 프로그래밍 문제를 함수적으로 생각하고 해결하는 방법 JVM에서 액터 모델 구현인 아카의 사용법 학습 최신 비즈니스 요구 사항을 해결하기 위해 스파크로 메모리 프로세싱 및 데이터 분석 수행 메소스와 도커를 사용해 강력하고 효과적인 클러스터 인프라 구축 카산드라를 통해 비정형의 No-SQL 데이터 소스 관리와 사용 카프카를 사용한 방대한 양의 메시지 생산과 소비 이 책의 대상 독자 오픈소스 데이터 스택 아키텍처를 가장 성공적으로 통합하는 방법과 모든 계층에서 올바른 기술을 선택하는 방법을 찾는 소프트웨어 개발자, 데이터 설계자, 데이터 엔지니어를 대상으로 한다. 또한 이 책은 모든 경우에서의 실질적인 장점을 제공한다. 각 기술에 대해 별도로 이야기하는 책은 많다. 이 책은 대체 기술을 찾는 사람들과 전체 스택을 연결하는 방법을 실용적인 예제로 다룬다. 이 책의 구성 1장, ‘SMACK 소개’에서는 SMACK의 기본 아키텍처에 대해 설명한다. SMACK 기술과 전통적인 데이터 기술의 차이점을 살펴본다. 또한 SMACK의 모든 기술을 살펴보고 각 툴의 잠재력을 간략히 보여준다. 2장. ‘모델: 스칼라와 아카’에서는 텍스트를 스칼라(언어)와 아카(JVM의 액터 모델 구현) 두 부분으로 나눠서 쉽게 만든다. 이 책은 예제를 통해 배울 수 있는 스칼라 아카의 미니 책이다. 전반부에서는 스칼라의 기본 내용을 설명하고, 후반부에서는 아카 액터 모델에 초점을 맞추고 있다. 3장, ‘엔진: 아파치 스파크’에서는 아파치 스파크의 핵심 사항을 처음부터 살펴본다. 아파치 스파크을 다운로드, 설치, 테스트하는 방법을 설명한다. 스파크 애플리케이션을 실행하는 방법을 배울 것이다. RDD와 RDD 오퍼레이션(트랜스포메이션 및 액션)과 같은 스파크 핵심 개념을 살펴본다. 클러스터 모드에서 아파치 스파크를 실행하는 방법, 드라이버 프로그램을 실행하는 방법, 고가용성을 달성하는 방법을 다룰 것이다. 3장에서는 스파크 스트리밍, 무상태 트랜스포메이션 및 상태 유지 트랜스포메이션, 출력 오퍼레이션, 고가용성을 높이는 방법, 스파크 스트리밍의 성능을 향상하는 방법에 대해 깊이 설명할 것이다. 4장, ‘저장소: 아파치 카산드라’에서는 저장소에 대해 설명한다. SMACK 스택의 C는 월마트(Walmart), CERN, 시스코(Cisco), 페이스북(Facebook), 넷플릿스(Netflix), 트위터(Twitter)와 같은 대기업에서 사용 중인 데이터베이스, 카산드라(Cassandra)를 의미한다. 스파크는 카산드라의 능력을 많이 사용한다. 스파크 카산드라 커넥터(Spark Cassandra Connector)를 사용하면 SMACK 애플리케이션의 효율성이 크게 향상된다. 5장, ‘브로커: 아파치 카프카’에서는 카프카(Kafka)가 개발된 이유를 설명하고 카프카 설치와 여러 타입의 클러스터를 지원하는 내용을 다룬다. 또한 카프카의 설계 방식을 살펴보고 여러 기본 프로듀서와 컨슈머를 사용한다. 단일 노드에서 단일 브로커 또는 다중 브로커를 사용해 카프카 클러스터를 설정하는 방법과 커맨드라인에서 프로듀서와 컨슈머를 실행하는 방법, 메시지를 교환하는 방법을 다룰 것이다. 브로커에 대한 몇 가지 중요한 설정에 대해서도 다룬다. 마지막으로 카프카와 스파크 같은 기술과 통합하는 방법에 대해 설명한다. 6장, ‘매니저: 아파치 메소스’에서는 메소스(Mesos) 아키텍처를 살펴보고 메소스의 자원 할당 방법과 DRF 알고리즘의 생성 방법을 설명한다. 또한 AWS와 사설 데이터 센터에서 메소스를 실행하는 방법을 보여준다. 가장 중요한 메소스 프레임워크인 마라톤(Marathon), 크로노스(Chronos), 오로라(Aurora), 싱귤러리티(Singularity)뿐 아니라 프레임워크 API도 설명한다. 또한 아파치 메소스 위에 스파크, 카산드라, 카프카를 실행하는 방법과 메소스를 사용한 분산 인프라에서 해당 프레임워크를 설치, 설정, 관리와 같은 주제를 다룰 것이다. 7장, ‘사례 연구 1 - 스파크와 카산드라’에서는 스파크와 카산드라의 관계에 대해 설명한다. 또한 스파크 카산드라 커넥터(Spark Cassandra Connector)와 카산드라와 스파크 컨텍스트(Spark Context) 설정 방법, 카산드라와 스파크 스트리밍, 스트리밍 컨텍스트 생성, 카산드라에서 스트림 읽기와 쓰기, 데이터 집합, 콜렉션, 튜플을 카산드라에 저장하는 방법, 콜렉션 수정, UDT와 RDD를 테이블에 저장하는 방법을 설명한다. 칼리오페(Calliope) 설치 및 설정, 카산드라에서 CQL3로 읽고 쓰기, 카산드라를 스리프트(Thrift)로 읽고 쓰는 칼리오페 프로젝트를 다룰 것이다. 8장, ‘사례 연구 2: 커넥터’에서는 즉 SMACK 스택 기술이 서로 통신할 수 있는 소프트웨어인 커넥터를 분석한다. 스파크와 카산드라의 관계는 매우 중요해서 5장에서 자세히 설명할 것이다. 9장, ‘사례 연구 3: 메소스와 도커’에서는 메소스 프레임워크를 개발하는 방법과 메소스 컨테이너라이저와 도커 컨테이너라이저를 사용하는 방법을 설명한다. 또한 프레임워크에 사용할 수 있는 메소스 API에 대해서도 다룬다. 게다가 메소스 컨테이너라이저와 도커 컨테이너라이저를 사용하는 방법을 설명할 것이다. 지은이의 말 이 책은 실무적인 가이드로서 SMACK 기술을 사용해 빠른 데이터 처리를 위한 효율적인 데이터 분석 시스템을 만들 수 있게 해준다. 먼저 SMACK을 소개하고 언제 사용해야 할지 설명하고, 스칼라를 사용해 기능적 사고와 문제 해결 방법을 익힌다. 이어서 아카 아키텍처를 이해하게 될 것이다. 또한, 데이터 구조 아키텍처를 개선하고 아파치 스파크를 사용한 자원을 최적화하는 방법을 알게 될 것이다. 다음으로 아파치 카산드라를 사용해 데이터베이스에서 선형 확장성을 수행하는 방법을 배우게 될 것이다. 아파치 카프카를 사용해 높은 처리량의 분산 메시징 시스템을 파악할 수 있다. 아파치 메소스를 통해 저렴하면서도 효과적인 클러스터 인프라를 구축하는 방법을 설명한다. 마지막으로 몇 가지 연구 사례를 통해 SMACK의 다양한 측면을 깊이 살펴볼 것이다. 책을 다 읽고 나면 SMACK의 모든 컴포넌트를 통합할 수 있을 것이고, SMACK 스택으로 매우 효과적이고 빠르게 데이터를 처리할 수 있을 것이다. 옮긴이의 말 서버 개발자의 입장에서는 웹서비스든, 앱서비스든 단순히 서버를 개발하는 것만으로는 서비스가 완성되지 않는다. 서비스 개발이 완성됐다 하더라도 고객문의(CS), 시스템 모니터링 등 데브옵스 업무 등이 남아 있다. 서비스 데이터 또는 로그를 백엔드에 전달해 모니터링뿐 아니라 사용자의 활동 지표로 활용하기도 하고, 머신 러닝을 활용해 추천 친구나 추천 시스템을 개발하기도 한다. 서비스 로그를 파일로 저장한 후 파일 데이터를 옮겨 빅데이터 저장소에 해당 서비스 로그를 저장하는 아키텍처를 데이터 파이프라인(data pipeline)이라고 한다. 데이터 파이프라인 처리 아키텍처에서는 멀티 테넌시(multi-tenancy), 확장, 대용량 처리, 실시간 데이터 처리를 지원해야 한다. 또한 저장된 빅데이터 저장소를 기반으로 실시간 분석 및 대용량 처리를 하고 지표, 모니터링, 추천 시스템으로 활용해서 사용자의 재방문률을 높일 수 있는 인사이트를 얻어야 한다. 처음에는 데이터 파이프라인과 데이터 분석이 무척 낯설 수 있다. 나도 처음부터 파이프라인과 데이터 분석을 시작한 것이 아니라서 많이 낯설었지만, 회사에서 업무를 진행하면서 조금씩 알아가고 있다. 외국에서는 데이터 파이프라인과 분석을 완벽히 해결할 수 있는 방법으로 하나의 오픈소스가 아닌 여러 오픈소스를 묶어(스택) 데이터 프로세싱을 처리하기 위한 다양한 시도를 하고 있다. 이런 흐름 속에서 2016년, 샌프란시스코 베이 에어리어(San Francisco Bay Area)의 데이터 엔지니어링 회의 및 컨퍼런스에서 "Spark, Mesos, Akka, Cassandra, Kafka Laying down the SMACK on your datapipelines"(링크: https://goo.gl/ny5Lwm, 발표 동영상: http://goo.gl/XVuxj8)라는 주제가 발표됐다. 이런 발표의 영향을 받아 관련 내용이 본 도서로 출판하게 됐다. 이 책에서는 데이터 인메모리(in-memory) 분산 컴퓨팅 기능이 포함된 스파크(Spark), 클러스터 OS(Cluster OS), 분산 시스템 관리, 스케줄링, 확장 기능이 포함된 메소스(Mesos), 스칼라 언어의 액터 모델의 구현인 아카(Akka), 영속성 계층인 noSQL 데이터베이스인 카산드라(Cassandra), 분산 스트리밍 플랫폼(메시지 브로커)인 카프카(Kafka)를 기반으로 데이터 파이프라인 아키텍처를 구성하는 SMACK 스택을 소개하고 있다. 이 책은 SMACK 스택을 전혀 모르는 개발자를 위한 책이다. 개별 컴포넌트를 쉽게 설명했고, 파이프라인 스택에 대한 아키텍처를 배우기에 적절하다. 특히 마지막 3장은 사례를 통해 SMACK 스택을 기반으로 하는 아키텍처를 배울 수 있다. |