추천 검색어

최근 검색어

도서 IT전문서/IT입문서 데이터베이스/데이터분석
스파크와 빅데이터를 위한 현장 밀착 입문서! 스파크를 다루는 기술
정 가
35,000원
출 간
2018-05-24
지 은 이
페타제체비치,마르코보나치
옮 긴 이
이춘오
I S B N
9791160504798
분 량
608쪽
난 이 도
초급
부 록
예제소스

스파크의 방대한 내용을 고르고 깊게 다룬다! 철두철미하면서 상냥한 스파크 활용 가이드!

스파크의 방대한 내용을 고르고 깊게 다룬다! 철두철미하면서 상냥한 스파크 활용 가이드!

이 책은 스파크를 이해하고 활용하는 데 필요한 중요 내용을 빠짐없이 다룬다. 1부에서 스파크와 스파크의 풍부한 API를 소개하고, 2부에서 스파크를 구성하는 스파크 SQL, 스파크 스트리밍, 스파크 MLlib, 스파크 GraphX 컴포넌트를 알아본다. 그리고 3부는 스파크 자체 클러스터, 하둡의 YARN 클러스터 및 메소스 클러스터에서 애플리케이션을 실행하는 데 필요한 기본 개념과 설정 옵션을 다룬다. 마지막으로 4부는 더욱 상위 레벨에서 스파크를 활용하는 방법을 다룬다. 책은 스칼라 언어로 예제 코드를 작성했고, 자바나 파이썬으로 작성한 코드는 온라인 저장소에서 찾아볼 수 있다. 책의 예제는 가상 머신으로 손쉽게 실행할 수 있다.

 

이 책은 스파크를 이해하고 활용하는 데 필요한 중요 내용을 빠짐없이 다룬다. 1부에서 스파크와 스파크의 풍부한 API를 소개하고, 2부에서 스파크를 구성하는 스파크 SQL, 스파크 스트리밍, 스파크 MLlib, 스파크 GraphX 컴포넌트를 알아본다. 그리고 3부는 스파크 자체 클러스터, 하둡의 YARN 클러스터 및 메소스 클러스터에서 애플리케이션을 실행하는 데 필요한 기본 개념과 설정 옵션을 다룬다. 마지막으로 4부는 더욱 상위 레벨에서 스파크를 활용하는 방법을 다룬다. 책은 스칼라 언어로 예제 코드를 작성했고, 자바나 파이썬으로 작성한 코드는 온라인 저장소에서 찾아볼 수 있다. 책의 예제는 가상 머신으로 손쉽게 실행할 수 있다. 

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 역행렬

찾아보기
ㆍ지은이 페타제체비치
지은이 소개
소프트웨어 업계에서 15년이 넘는 경력을 보유하고 있다. 자바 개발자로 커리어를 시작해 풀스택 개발자, 컨설턴트, 분석가, 팀장으로서 다양한 프로젝트에 참여해 왔다. 현재는 크로아티아의 대형 은행과 정부 기관 및 기업을 지원하는 소프트웨어 기업인 SV Group에서 CTO로 일하고 있다. 매달 아파치 스파크 자그레브 밋업을 주최하며, 학회 논문을 발표하고, 여러 아파치 스파크 프로젝트를 진행하는 등 왕성한 활동을 이어가고 있다.

ㆍ지은이 마르코보나치
지은이 소개
13년 동안 자바 개발자 경력을 쌓아 왔다. 현재는 Sematext에서 스파크 개발자 및 컨설턴트로 활동하고 있다. 그 전에는 SV Group에서 IBM Enterprise Content Management 팀의 팀장으로 근무했다.

ㆍ옮긴이 이춘오
옮긴이 소개
KAIST 정보통신공학과 학사 및 박사 학위를 취득하고, 삼성전자에서 빅데이터 플랫폼 엔지니어로 근무했으며, 현재는 SK 플래닛의 데이터 과학자로 재직 중이다. 11번가의 다양한 데이터를 바탕으로 각종 예측 모델을 구축하고 데이터 기반 서비스를 개발하는 업무를 하고 있다.

필요한 자료를 선택하세요.

추천도서