스파크를 다루는 기술 Spark in Action
도서명:스파크를 다루는 기술 Spark in Action
저자/출판사:페타,제체비치,마르코,보나치/길벗
쪽수:608쪽
출판일:2018-05-24
ISBN:9791160504798
목차
1부 첫걸음
1장 아파치 스파크 소개
__1.1 스파크란
____1.1.1 스파크가 가져온 혁명
____1.1.2 맵리듀스의 한계
____1.1.3 스파크가 가져다준 선물
__1.2 스파크를 구성하는 컴포넌트
____1.2.1 스파크 코어
____1.2.2 스파크 SQL
____1.2.3 스파크 스트리밍
____1.2.4 스파크 MLlib
____1.2.5 스파크 GraphX
__1.3 스파크 프로그램의 실행 과정
__1.4 스파크 생태계
__1.5 가상 머신 설정
____1.5.1 가상 머신 시작
____1.5.2 가상 머신 종료
__1.6 요약
2장 스파크의 기초
__2.1 가상 머신 사용
____2.1.1 깃허브 저장소 복제
____2.1.2 자바 찾기
____2.1.3 가상 머신에 설치된 하둡 사용
____2.1.4 가상 머신에 설치된 스파크 살펴보기
__2.2 스파크 셸로 첫 스파크 프로그램 작성
____2.2.1 스파크 셸 시작
____2.2.2 첫 스파크 코드 예제
____2.2.3 RDD의 개념
__2.3 RDD의 기본 행동 연산자 및 변환 연산자
____2.3.1 map 변환 연산자
____2.3.2 distinct와 flatMap 변환 연산자
____2.3.3 sample, take, takeSample 연산으로 RDD의 일부 요소 가져오기
__2.4 Double RDD 전용 함수
____2.4.1 double RDD 함수로 기초 통계량 계산
____2.4.2 히스토그램으로 데이터 분포 시각화
____2.4.3 근사 합계 및 평균 계산
__2.5 요약
3장 스파크 애플리케이션 작성하기
__3.1 이클립스로 스파크 프로젝트 생성
__3.2 스파크 애플리케이션 개발
____3.2.1 깃허브 아카이브 데이터셋 준비
____3.2.2 JSON 로드
____3.2.3 이클립스에서 애플리케이션 실행
____3.2.4 데이터 집계
____3.2.5 분석 대상 제외
____3.2.6 공유 변수
____3.2.7 전체 데이터셋 사용
__3.3 애플리케이션 제출
____3.3.1 uberjar 빌드
____3.3.2 애플리케이션의 적응력 올리기
____3.3.3 spark-submit 사용
__3.4 요약
4장 스파크 API 깊이 파헤치기
__4.1 Pair RDD 다루기
____4.1.1 Pair RDD 생성
____4.1.2 기본 Pair RDD 함수
__4.2 데이터 파티셔닝을 이해하고 데이터 셔플링 최소화
____4.2.1 스파크의 데이터 Partitioner
____4.2.2 불필요한 셔플링 줄이기
____4.2.3 RDD 파티션 변경
____4.2.4 파티션 단위로 데이터 매핑
__4.3 데이터 조인, 정렬, 그루핑
____4.3.1 데이터 조인
____4.3.2 데이터 정렬
____4.3.3 데이터 그루핑
__4.4 RDD 의존 관계
____4.4.1 RDD 의존 관계와 스파크 동작 메커니즘
____4.4.2 스파크의 스테이지와 태스크
____4.4.3 체크포인트로 RDD 계보 저장
__4.5 누적 변수와 공유 변수
____4.5.1 누적 변수로 실행자에서 데이터 가져오기
____4.5.2 공유 변수로 실행자에 데이터 전송
__4.6 요약
2부 스파크 패밀리와 만남
5장 스파크 SQL로 멋진 쿼리를 실행하자
__5.1 DataFrame 다루기
____5.1.1 RDD에서 DataFrame 생성
____5.1.2 기본 DataFrame API
____5.1.3 SQL 함수로 데이터에 연산 수행
____5.1.4 결측 값 다루기
____5.1.5 DataFrame을 RDD로 변환
____5.1.6 데이터 그루핑
____5.1.7 데이터 조인
__5.2 DataFrame을 넘어 Dataset으로
__5.3 SQL 명령
____5.3.1 테이블 카탈로그와 하이브 메타스토어
____5.3.2 SQL 쿼리 실행
____5.3.3 쓰리프트 서버로 스파크 SQL 접속
__5.4 DataFrame을 저장하고 불러오기
____5.4.1 기본 데이터 소스
____5.4.2 데이터 저장
____5.4.3 데이터 불러오기
__5.5 카탈리스트 최적화 엔진
__5.6 텅스텐 프로젝트의 스파크 성능 향상
__5.7 요약
6장 스파크 스트리밍으로 데이터를 흐르게 하자
__6.1 스파크 스트리밍 애플리케이션 작성
____6.1.1 예제 애플리케이션
____6.1.2 스트리밍 컨텍스트 생성
____6.1.3 이산 스트림 생성
____6.1.4 이산 스트림 사용
____6.1.5 결과를 파일로 저장
____6.1.6 스트리밍 계산 작업의 시작과 종료
____6.1.7 시간에 따라 변화하는 계산 상태 저장
____6.1.8 윈도 연산으로 일정 시간 동****유입된 데이터만 계산
____6.1.9 그 외 내장 입력 스트림
__6.2 외부 데이터 소스 사용
____6.2.1 카프카 시작
____6.2.2 카프카를 사용해 스트리밍 애플리케이션 개발
__6.3 스파크 스트리밍의 잡 성능
____6.3.1 성능 개선
____6.3.2 장애 내성
__6.4 정형 스트리밍
____6.4.1 스트리밍 DataFrame 생성
____6.4.2 스트리밍 데이터 출력
____6.4.3 스트리밍 실행 관리
____6.4.4 정형 스트리밍의 미래
__6.5 요약
7장 MLlib로 더 똑똑해지자
__7.1 머신 러닝의 개요
____7.1.1 머신 러닝의 정의
____7.1.2 머신 러닝 알고리즘의 유형
____7.1.3 스파크를 활용한 머신 러닝
__7.2 스파크에서 선형 대수 연산 수행
____7.2.1 로컬 벡터와 로컬 행렬
____7.2.2 분산 행렬
__7.3 선형 회귀
____7.3.1 선형 회귀 소개
____7.3.2 단순 선형 회귀
____7.3.3 다중 선형 회귀로 모델 확장
__7.4 데이터 분석 및 준비
____7.4.1 데이터 분포 분석
____7.4.2 열 코사인 유사도 분석
____7.4.3 공분산 행렬 계산
____7.4.4 레이블 포인트로 변환
____7.4.5 데이터 분할
____7.4.6 특징 변수 스케일링 및 평균 정규화
__7.5 선형 회귀 모델 학습 및 활용
____7.5.1 목표 변수 값 예측
____7.5.2 모델 성능 평가
____7.5.3 모델 매개변수 해석
____7.5.4 모델의 저장 및 불러오기
__7.6 알고리즘 정확도 극대화
____7.6.1 적절한 이동 거리와 반복 횟수를 찾는 방법
____7.6.2 고차 다항식 추가
____7.6.3 편향-분산 상충 관계와 모델의 복잡도
____7.6.4 잔차 차트 그리기
____7.6.5 일반화를 사용해 과적합 방지
____7.6.6 k-겹 교차 검증
__7.7 알고리즘 성능 최적화
____7.7.1 미니배치 기반 확률적 경사 하강법
____7.7.2 LBFGS 최적화
__7.8 요약
8장 스파크 ML로 만드는 분류와 군집화
__8.1 스파크 ML 라이브러리
____8.1.1 변환자, 추정자, 평가자
____8.1.2 ML 매개변수
____8.1.3 ML 파이프라인
__8.2 로지스틱 회귀
____8.2.1 이진 로지스틱 회귀 모델
____8.2.2 로지스틱 회귀에 필요한 데이터 준비
____8.2.3 로지스틱 회귀 모델 훈련
____8.2.4 분류 모델의 평가
____8.2.5 k-겹 교차 검증 수행
____8.2.6 다중 클래스 로지스틱 회귀
__8.3 의사 결정 트리와 랜덤 포레스트
____8.3.1 의사 결정 트리
____8.3.2 랜덤 포레스트
__8.4 군집화
____8.4.1 k-평균 군집화
__8.5 요약
9장 점을 연결하는 GraphX
__9.1 스파크의 그래프 연산
____9.1.1 GraphX API를 사용해 그래프 만들기
____9.1.2 그래프 변환
__9.2 그래프 알고리즘
____9.2.1 예제 데이터셋
____9.2.2 최단 경로 알고리즘
____9.2.3 페이지랭크
____9.2.4 연결요소
____9.2.5 강연결요소
__9.3 A* 검색 알고리즘 구현
____9.3.1 A* 알고리즘 이해
____9.3.2 A* 알고리즘 구현
____9.3.3 구현된 알고리즘 테스트
__9.4 요약
3부 스파크 옵스
10장 스파크 클러스터 구동
__10.1 스파크 런타임 아키텍처의 개요
____10.1.1 스파크 런타임 컴포넌트
____10.1.2 스파크 클러스터 유형
__10.2 잡 스케줄링과 리소스 스케줄링
____10.2.1 클러스터 리소스 스케줄링
____10.2.2 스파크 잡 스케줄링
____10.2.3 데이터 지역성
____10.2.4 스파크의 메모리 스케줄링
__10.3 스파크 설정
____10.3.1 스파크 환경 설정 파일
____10.3.2 명령줄 매개변수
____10.3.3 시스템 환경 변수
____10.3.4 프로그램 코드로 환경 설정
____10.3.5 master 매개변수
____10.3.6 설정된 매개변수 조회
__10.4 스파크 웹 UI
____10.4.1 Jobs 페이지
____10.4.2 Stages 페이지
____10.4.3 Storage 페이지
____10.4.4 Environment 페이지
____10.4.5 Executors 페이지
__10.5 로컬 머신에서 스파크 실행
____10.5.1 로컬 모드
____10.5.2 로컬 클러스터 모드
__10.6 요약
11장 스파크 자체 클러스터
__11.1 스파크 자체 클러스터의 컴포넌트
__11.2 스파크 자체 클러스터 시작
____11.2.1 셸 스크립트로 클러스터 시작
____11.2.2 수동으로 클러스터 시작
____11.2.3 스파크 프로세스 조회
____11.2.4 마스터 고가용성 및 복구 기능
__11.3 스파크 자체 클러스터의 웹 UI
__11.4 스파크 자체 클러스터에서 애플리케이션 실행
____11.4.1 드라이버의 위치
____11.4.2 실행자 개수 지정
____11.4.3 추가 클래스패스 항목 및 파일 지정
____11.4.4 애플리케이션 강제 종료
____11.4.5 애플리케이션 자동 재시작
__11.5 스파크 히스토리 서버와 이벤트 로깅
__11.6 아마존 EC2에서 스파크 실행
____11.6.1 사전 준비
____11.6.2 EC2 기반 스파크 자체 클러스터 생성
____11.6.3 EC2 클러스터 사용
____11.6.4 클러스터 제거
__11.7 요약
12장 YARN 클러스터와 메소스 클러스터
__12.1 YARN에서 스파크 실행
____12.1.1 YARN 아키텍처
____12.1.2 YARN 설치, 구성 및 시작
____12.1.3 YARN의 리소스 스케줄링
____12.1.4 YARN에 스파크 애플리케이션 제출
____12.1.5 YARN에서 스파크 설정
____12.1.6 스파크 잡에 할당할 리소스 설정
____12.1.7 YARN UI
____12.1.8 YARN에서 로그 조회
____12.1.9 보****관련 사항
____12.1.10 동적 리소스 할당
__12.2 메소스에서 스파크 실행
____12.2.1 메소스 아키텍처
____12.2.2 메소스 설치 및 설정
____12.2.3 메소스 웹 UI
____12.2.4 메소스의 리소스 스케줄링
____12.2.5 메소스에 스파크 애플리케이션 제출
____12.2.6 도커로 스파크 실행
__12.3 요약
4부 스파크의 활용
13장 실용 예제: 실시간 대시보드를 구현하자
__13.1 예제 애플리케이션 소개
____13.1.1 예제 시나리오
____13.1.2 예제 애플리케이션의 컴포넌트
__13.2 애플리케이션 실행
____13.2.1 가상 머신에서 애플리케이션 시작
____13.2.2 애플리케이션을 수동으로 시작
__13.3 소스 코드 이해
____13.3.1 KafkaLogsSimulator 프로젝트
____13.3.2 StreamingLogAnalyzer 프로젝트
____13.3.3 WebStatsDashboard 프로젝트
____13.3.4 프로젝트 빌드
__13.4 요약
14장 스파크와 H2O를 활용한 딥러닝
__14.1 딥러닝의 개요
__14.2 스파크에서 H2O 사용
____14.2.1 H2O의 개요
____14.2.2 스파크에서 스파클링 워터 시작
____14.2.3 H2O 클러스터 시작
____14.2.4 플로 UI에 접속
__14.3 H2O의 딥러닝을 사용한 회귀 예측
____14.3.1 데이터를 H2O 프레임으로 로드
____14.3.2 플로 UI로 딥러닝 모델 구축 및 평가
____14.3.3 스파클링 워터 API로 딥러닝 모델 구축 및 평가
__14.4 H2O의 딥러닝을 사용한 분류 예측
____14.4.1 데이터 로드 및 분할
____14.4.2 플로 UI로 모델 구축
____14.4.3 스파클링 워터 API로 모델 구축
____14.4.4 H2O 클러스터 중지
__14.5 요약
부록 A 아파치 스파크 설치
__A.1 사전 준비: JDK 설치
__A.2 JAVA_HOME 환경 변수 설정
__A.3 스파크 내려받기, 설치, 설정
__A.4 스파크 셸
부록 B 맵리듀스
부록 C 선형 대수학 입문
__C.1 행렬과 벡터
__C.2 행렬 덧셈
__C.3 스칼라배
__C.4 행렬 곱셈
__C.5 단위행렬
__C.6 역행렬
찾아보기