초보자를 위한 아파치 스파크 2 [스칼라와 파이썬을 활용한 대규모 분산 데이터 처리 애플리케이션 개발]
- 원서명Apache Spark 2 for Beginners: Develop large-scale distributed data processing applications using Spark 2 in Scala and Python (ISBN 9781785885006)
- 지은이라자나라야난 토투바이카투마나(Rajanarayanan Thottuvaikkatumana)
- 옮긴이방호남
- ISBN : 9791161751054
- 30,000원
- 2018년 01월 31일 펴냄
- 페이퍼백 | 384쪽 | 188*235mm
- 시리즈 : acorn+PACKT
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
스파크 2.0을 처음 접하는 초보자부터 고급 개발자까지 활용할 수 있는 예제 중심의 스파크 2.0 종합 입문서다.
빅데이터와 머신 러닝 시대를 맞아 안정적이고 빠른 데이터 처리 능력을 가진 분산 데이터 처리 플랫폼의 중요성이 부각되는 가운데 처리 속도, 안정성, 호환성을 모두 만족하는 오픈 소스 기반 프레임워크가 바로 스파크다. 새로 나온 스파크 2.0은 기존 스파크보다 더욱 빠른 데이터 처리 속도와 다양한 머신 러닝 라이브러리 지원을 바탕으로 전 세계에서 활용되고 있다.
특히 이 책은 스파크를 처음 접하는 초보자들이 내용을 쉽게 이해할 수 있도록 다양한 예제 중심으로 이뤄져 있다. 단순한 데이터 처리부터 복잡한 데이터 스트림, 메시지큐, 그래프 모델 등 다양한 난이도의 예제를 통해 스파크 2.0이 가진 장점을 모두 살펴볼 수 있을 것이다.
이 책에서 다루는 내용
█ 스칼라와 파이썬을 이용한 스파크 프로그래밍 모델과 스파크 2의 기초
█ 스파크 SQL 사용법과 스칼라와 파이썬을 이용한 데이터프레임 활용
█ R을 이용한 스파크 프로그래밍 기초
█ 파이썬을 활용한 그래프 및 차트 그리기, 스파크 데이터 처리
█ 스칼라와 파이썬을 이용한 스파크 스트림 처리
█ 스파크 MLib을 활용한 머신 러닝
█ 스파크 GraphX를 이용한 그래프 처리 기초
█ 배운 것들을 종합해 하나의 완벽한 스파크 애플리케이션 실전 예제 개발
이 책의 대상 독자
스파크의 데이터 처리 능력과 R 또는 데이터 및 스트림 처리, 머신 러닝, 그래프 처리를 결합해 상호 운용 가능한 하나의 프레임워크에서 스칼라나 파이썬을 지원하는 통합 API를 활용하는 데 관심이 있는 애플리케이션 개발자 및 데이터 과학자, 대규모 데이터 솔루션 아키텍처라면 이 책이 큰 도움이 될 것이다.
이 책의 구성
1장, ‘스파크 기초’에서는 스파크 프레임워크 기초와 API 그리고 함께 제공되는 라이브러리를 논의하고 스파크를 사용하는 데이터 처리 생태계 전체를 살펴본다.
2장, ‘스파크 프로그래밍 모델’에서는 스파크에서 사용되는 함수 프로그래밍 방법론을 기초로 스파크의 유니폼 프로그래밍 모델에 대해 설명하고 RDD(Resilient Distributed Data Sets) 및 스파크 변환, 스파크 액션의 기본 사항을 다룬다.
3장, ‘스파크 SQL’에서는 가장 강력한 스파크 라이브러리 중 하나인 스파크 SQL에 관해 논의하고 스파크 프로그램과 함께 어떠한 방식으로 동작하는지 살펴본다. 또한 데이터 처리를 위해 스파크 SQL을 사용해 다양한 데이터 소스에 액세스하는 방법과 여러 종류의 데이터 소스 통합에 관해 설명한다.
4장, ‘스파크 R 프로그래밍’에서는 스파크 R API인 SparkR과 R에 관해 설명한다. 이를 통해 R 사용자는 익숙한 데이터 프레임 추상화를 사용해 스파크의 데이터 처리 기능을 사용할 수 있다. 더불어 R 사용자가 스파크 데이터 처리 생태계에 익숙해질 수 있는 기초 지식도 제공한다.
5장, ‘파이썬을 활용한 스파크 데이터 분석’에서는 스파크를 이용한 데이터 처리 방법과 파이썬에서 스파크와 함께 활용할 수 있는 다양한 차트 및 그래프 라이브러리에 대해 설명한다. 또한 프로그래밍 언어로서 파이썬을 선택하고 스파크 애플리케이션을 파이썬과 결합해서 활용하는 방법에 대해 논의한다.
6장, ‘스파크 스트림 처리’에서는 스트림(stream) 형태로 수집한 데이터를 캡처하고 처리하는 가장 강력한 스파크 라이브러리 중 하나인 스파크 스트리밍에 대해 설명한다. 분산 메시지 브로커인 카프카(Kafka)와 카프카의 소비자로 작동하는 스파크 스트리밍 애플리케이션에 대해서도 논의한다.
7장, ‘스파크 머신 러닝’에서는 입문 수준에서 머신 러닝 애플리케이션 개발에 사용하는 가장 강력한 스파크 라이브러리 중 하나인 스파크 MLlib에 대해 설명한다.
8장, ‘스파크 그래프 처리’에서는 그래프 데이터 구조를 처리하는 가장 강력한 스파크 라이브러리 중 하나인 스파크 GraphX에 대해 설명하고 그래프로 데이터를 처리하는 수많은 알고리즘을 살펴본다. GraphX 기초와 GraphX에서 제공하는 알고리즘을 사용해 구현한 몇 가지 유스 케이스도 설명한다.
9장, ‘스파크 애플리케이션 설계’에서는 스파크의 다양한 기능을 다루는 스파크 데이터 처리 애플리케이션 설계 및 개발에 대해 설명한다. 9장에서 다루는 대부분의 내용은 이미 앞에서 다룬 내용이다.
목차
목차
- 1장. 스파크 기초
- 아파치 하둡 소개
- 스파크 분석
- 스파크 설치
- 파이선 설치
- R 설치
- 스파크 설치
- 개발 도구 설치
- 추가 소프트웨어 설치
- IPython
- RStudio
- 아파치 제플린
- 참고문헌
- 요약
- 2장. 스파크 프로그래밍 모델
- 스파크 함수 프로그래밍
- 스파크 함수 프로그래밍
- 스파크 RDD 불변성
- 스파크 RDD 분산 용이성
- 스파크 RDD 메모리 상주
- 스파크 RDD의 강력한 데이터 타입 지원
- 스파크 RDD를 이용한 데이터 변환과 액션
- 스파크 모니터링
- 스파크 프로그래밍 기초
- 맵리듀스
- 조인
- 추가 액션
- 파일에서 RDD 생성
- 스파크 라이브러리 스택
- 참고문헌
- 요약
- 3장. 스파크 SQL
- 데이터 구조
- 왜 스파크 SQL인가?
- 스파크 SQL 해부
- 데이터프레임 프로그래밍
- SQL 프로그래밍
- 데이터프레임 API 프로그래밍
- 스파크 SQL 집계
- 스파크 SQL을 사용한 다중 데이터 소스 연결
- 데이터셋
- 데이터 카탈로그
- 참고문헌
- 요약
- 4장. 스파크 R 프로그래밍
- SparkR의 필요성
- R 언어의 기초
- R 데이터프레임과 스파크
- R을 이용한 스파크 데이터프레임 프로그래밍
- SQL 프로그래밍
- R 데이터프레임 API를 이용한 프로그래밍
- 스파크 R을 이용한 집계
- SparkR을 이용한 다중 데이터 소스 조인
- 참고문헌
- 요약
- 5장. 파이선과 함께하는 스파크 데이터 분석
- 차트 및 그래프 작성 라이브러리
- 데이터셋 설정
- 데이터 분석 유스 케이스
- 차트와 그래프
- 히스토그램
- 밀도 그래프
- 막대 차트
- 누적 막대형 차트
- 파이 차트
- 도넛 차트
- 상자 그래프
- 수직 막대 그래프
- 산점도
- 강화된 산점도
- 라인 그래프
- 참고문헌
- 요약
- 6장. 스파크 스트림 처리
- 데이터 스트림 처리
- 마이크로 배치 데이터 처리
- DStream 프로그래밍
- 로그 이벤트 처리기
- 넷캣 서버 시작
- 파일 정리
- 스파크 클러스터 작업 제출
- 애플리케이션 모니터링
- 스칼라 애플리케이션 구현
- 애플리케이션 컴파일 및 실행
- 출력 결과물 처리
- 파이선 애플리케이션 실행
- 구간 데이터 처리
- 스칼라 애플리케이션 로그 이벤트 메시지 빈도수 세기
- 파이선 애플리케이션 로그이벤트 메시지 빈도수 세기
- 추가 처리 옵션
- 카프카 스트림 처리
- 주키퍼와 카프카 시작하기
- 스칼라 애플리케이션 구현
- 파이선 애플리케이션 구현
- 실제 스파크 스트리밍 작업
- 스파크 데이터 처리 애플리케이션 실패-내구성 구현
- 구조 데이터 스트리밍
- 참고문헌
- 요약
- 7장. 스파크 머신 러닝
- 머신 러닝
- 스파크가 머신 러닝에 적합한 이유
- 와인 품질 예측
- 모델 저장
- 와인 분류
- 스팸 필터링
- 특징 알고리즘
- 동의어 찾기
- 참고문헌
- 요약
- 8장. 스파크 그래프 처리
- 그래프와 사용 사례 이해
- 스파크 GraphX 라이브러리
- GraphX overview
- 그래프 분할
- 그래프 처리
- 그래프 구조 처리
- 테니스 토너먼트 분석
- 페이지랭크 알고리즘 적용
- 연결된 구성 요소 알고리즘
- 그래프프레임
- 그래프프레임 쿼리
- 참고문헌
- 요약
- 9장. 스파크 애플리케이션 디자인
- 람다 아키텍처
- 람다 아키텍처 마이크로블로깅
- SfbMicroBlog 오버뷰
- 데이터 이해
- 데이터 사전 설정
- 람다 아키텍처 구현
- 배치 레이어
- 서빙 레이어
- 스피드 레이어
- 쿼리
- 스파크 애플리케이션 작업
- 코딩 스타일
- 소스 코드 셋업
- 데이터 소화
- 뷰와 쿼리 생성
- 커스텀 데이터 처리 이해
- 참고문헌