아파치 스파크 입문 - 따라 하며 쉽게 익히는 스파크 SQL, 스트림처리, 머신러
★ 처음 만나는 스파크, 따라 하며 쉽게 완성하는 실전 입문서로 익히기!
스파크는 하둡 이후 빅데이터 엔지니어링 부문에서 주목받는 기술이다. 빠르고 배우기 쉬울 뿐 아니라 다양한 언어를 SDK로 지원하는 등의 장점에 힘입어, 국내에서도 각종 서비스에 도입되었다. 이 책은 이러한 스파크를 처음 접하는 개발자용 입문서다. 스파크의 특성과 동작 원리 등 기초 이론을 먼저 설명하고, 실제 활용 측면에서 데이터를 다루는 병렬분산처리 애플리케이션을 작성해본다. 독자의 이해를 돕는 그림과 도표가 풍부하게 실려 있고, 책에서 예제로 사용하는 샘플 코드도 함께 제공한다(일부 챕터는 2.0 기반 코드를 함께 제공).
김진용 역자는 이 책의 품질을 높이는 과정에서 수차례 어려움을 겪었다. 원서 초벌 번역이 끝나자마자 버전 이슈가 발생해 처음부터 다시 뜯어봐야만 했고, 구문분석이나 지리, 날씨 등 일본어에 특화된 내용과 샘플을 한국 실정에 맞게 하나씩 지역화하여 새로 만드는 과정도 절대 순탄치 않았다. 어언 20년 차에 접어드는 일본 생활의 영향으로 입에 밴 일본식 번역 투 문장 역시 순조로운 작업을 방해하는 걸림돌이었고 수 차례에 걸쳐 교정을 봐야 했다. 그 모든 역경을 이겨내고 마침내 세상의 빛을 볼 수 있게 된 책인 만큼 독자 여러분에게 부디 도움이 되었으면 하는 바람이다.
_주요 내용
- 1장: 스파크 탄생 배경과 특징, 활용사례 소개
- 2장: 스파크 병렬분산처리의 핵심 자료구조인 \'RDD\' 기반 모델 이해
- 3장: 스파크 작동을 위한 환경 구축(단일 머신(PC) 기반/ 클러스터 기반)
- 4장: 각종 라이브러리를 이용한 애플리케이션 빌드/ 실행 방법
- 5장: 3장에서 구축한 환경에서 실제 스파크를 돌려가며 기본적인 앱 작성
- 6장~8장: 스파크 병렬분산처리 엔진을 여러 용도에 응용하는 라이브러리 소개(스파크 SQL, 스파크 스트리밍, MLlib)
_대상 독자
- 스파크를 처음 배우는 데이터 엔지니어/데이터 과학자
- 자바, 파이썬, 스칼라 등 프로그래밍 언어 경험이 있는 개발자
- 하둡이나 기타 데이터베이스의 사용 경험이 있는 사람
(주)NTT데이터 기반시스템사업본부 주임. 2009년부터 하둡을 필두로 다양한 OSS 병렬분
산기반의 시스템 도입 지원 작업을 담당했고, 관련 기술을 개발해왔다. 2014년부터 하둡을 보완하는 제품 후보로 스파크를 다루기 시작했다. 기술 조사와 프로젝트 등을 통해 확인된 스파크의 과제를 커뮤니티에 계속해서 피드백해왔고, 2015년 6월 일본인으로는 처음으로 아파치 스파크 커미터가 되었다.
Part 1 도입편
Chapter 1 아파치 스파크란 무엇인가?
1.1 아파치 스파크 정의
1.2 스파크의 역사와 개발 커뮤니티
1.3 스파크 활용 사례
1.4 스파크의 특징
Chapter 2 스파크의 처리 모델
2.1 스파크의 기본적인 자료구조 RDD
2.2 스파크 분산처리 환경
Chapter 3 스파크 설치하기
3.1 이 책의 스파크 작동 환경
3.2 스파크 설치(단일 머신/클러스터 공통)
3.3 스파크 설치(클러스터용 추가 작업)
Chapter 4 스파크 애플리케이션 개발과 실행
4.1 스파크 제공 라이브러리
4.2 스파크 애플리케이션 개발 환경 구축
4.3 sbt로 스파크 애플리케이션 작성하기
4.4 스파크 애플리케이션 실행하기
4.5 대화형으로 실행하기
4.6 애플리케이션의 강제 종료
Part 2 실전편
Chapter 5 기본 API를 이용한 프로그래밍
5.1 기본 API 개요
5.2 스파크 애플리케이션과의 만남
5.3 데이터 순서를 바꾸어 처리하기
5.4 복수의 데이터를 결합해 처리하기
5.5 복잡한 처리를 효율적으로 처리하기
Chapter 6 구조화된 데이터셋 처리하기: 스파크 SQL
6.1 스파크 SQL이란?
6.2 스파크 SQL을 이용한 데이터처리 기술 방법
6.3 스파크 SQL 준비작업
6.4 DataFrame을 이용하여 데이터처리 기술하기
6.5 하이브와 스파크 SQL의 테이블에 대한 처리 기술하기
6.6 스파크 SQL 튜닝하기
Chapter 7 스트림 데이터 처리하기: 스파크 스트리밍
7.1 스트림처리란 무엇인가?
7.2 각종 이용 사례
7.3 스파크 스트리밍이란 무엇인가?
7.4 스파크 스트리밍이 제공하는 기능
7.5 동작 확인하기
7.6 클러스터 환경에 애플리케이션 배포하기
7.7 센서 데이터 스트림처리하기
7.8 아파치 카프카와 연동하기
7.9 샘플 프로젝트에서 다루지 못한 것
Chapter 8 머신러닝: MLlib
8.1 MLlib 개요
8.2 MLlib의 기초와 제공 알고리즘
8.3 MLlib 입문
8.4 Word2Vec으로 한국어 벡터화하기
8.5 응용편: 회귀에 의한 매출 분석
8.6 spark.ml 패키지의 ML 파이프라인
Part 3 부록
부록 A 그래프X를 이용한 그래프 처리
A.1 그래프X란 무엇인가?
A.2 그래프의 예
A.3 그래프X 기능의 개요
A.4 그래프X를 이용한 그래프 처리 예
부록 B 스파크 R 활용하기
B.1 스파크 R이란 무엇인가?
B.2 스파크 R의 작동 환경 구축
B.3 스파크 R의 작동 확인
B.4 스파크 R 셸을 이용한 데이터 처리
부록 C 머신러닝과 스트림처리 연동
C.1 센서 데이터를 이용한 행동 분석
C.2 회귀 모델 생성
C.3 평가용 스트림 데이터로 사용자 행동 판정
C.4 스파크 스트리밍의 결과 출력
C.5 JDBC 서버 기능으로 스트림처리 결과 참조
C.6 샘플 애플리케이션의 확장성
부록 D 웹 UI 활용
D.1 UI의 개요
D.2 웹 UI 접속 방법
D.3 처리 타임라인 시각화와 DAG 시각화
D.4 과거의 애플리케이션 실행 결과를 확인하는 방법