1. 광고배너
  2. 광고배너
/ 이전버튼 다음버튼
2
미리보기

초보자를 위한 아파치 스파크 2-스칼라와 파이썬을 활용한 대규모 분산 데이터 처리 애플리케이션 개발
저자 : 라자나라야난토투바이카투마나 ㅣ 출판사 : 에이콘출판 ㅣ 역자 : 방호남

2018.01.31 ㅣ 384p ㅣ ISBN-13 : 9791161751054

정가30,000
판매가28,500(5% 할인)
적립금 1,200원 (4%)
배송일정 05월 09일 출고 가능
주문 수량 변경시 안내 배송안내
쿠폰 및 결제혜택 확인하기

크기 기타 규격
제품구성 단행본
이용약관 청약철회
국내도서 > 컴퓨터 > 인터넷 > 웹프로그래밍(웹디자...
스파크 2.0을 처음 접하는 초보자부터 고급 개발자까지 활용할 수 있는 예제 중심의 스파크 2.0 종합 입문서다. 빅데이터와 머신 러닝 시대를 맞아 안정적이고 빠른 데이터 처리 능력을 가진 분산 데이터 처리 플랫폼의 중요성이 부각되는 가운데 처리 속도, 안정성, 호환성을 모두 만족하는 오픈 소스 기반 프레임워크가 바로 스파크다. 새로 나온 스파크 2.0은 기존 스파크보다 더욱 빠른 데이터 처리 속도와 다양한 머신 러닝 라이브러리 지원을 바탕으로 전 세계에서 활용되고 있다. 특히 이 책은 스파크를 처음 접하는 초보자들이 내용을 쉽게 이해할 수 있도록 다양한 예제 중심으로 이뤄져 있다. 단순한 데이터 처리부터 복잡한 데이터 스트림, 메시지큐, 그래프 모델 등 다양한 난이도의 예제를 통해 스파크 2.0이 가진 장점을 모두 살펴볼 수 있을 것이다.
펼쳐보기

[목 차]

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 오버뷰
____데이터 이해
____데이터 사전 설정
__람다 아키텍처 구현
____배치 레이어
____서빙 레이어
____스피드 레이어
________쿼리
__스파크 애플리케이션 작업
__코딩 스타일
__소스 코드 셋업
__데이터 소화
__뷰와 쿼리 생성
__커스텀 데이터 처리 이해
__참고문헌
__요약
펼쳐보기
★ 이 책에서 다루는 내용 ★

■ 스칼라와 파이썬을 이용한 스파크 프로그래밍 모델과 스파크 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장에서 다루는 대부분의 내용은 이미 앞에서 다룬 내용이다.

★ 옮긴이의 말 ★

요즘 컴퓨터 세계는 빅데이터와 머신 러닝의 시대라고 해도 과언이 아니다. 이 두 가지 기술이 맞물려 창출해 내는 부가가치와 잠재력은 분야를 막론하고 상상을 초월한다. 이러한 흐름에 발맞춰 머신 러닝이나 빅데이터 처리 프레임워크에 관심을 가지는 개발자가 점점 많아지고 있다. 한국에서도 이러한 스킬을 가지고 있는 고급 개발자들이 미국의 글로벌 IT회사로 이직하는 경우를 많이 봐왔다.
이러한 큰 흐름에 따라 무언가 시도해 보고는 싶은데 어디서부터 시작할지 모르는 입문자나, 머신 러닝 자체보다는 데이터 전처리나 파이프 라인 구축에 드는 많은 시간과 노력에 지친 데이터 과학자들에게 스파크는 매우 환영 받는 프레임워크다. 맵리듀스 같은 복잡한 프로그래밍 모델을 모르더라도 간단한 스크립팅과 파이썬, 스칼라 등의 프로그래밍 언어만 알면 누구나 손쉽게 머신 러닝과 빅데이터 공부를 시작할 수 있다.
스파크가 데이터 처리 프레임워크 세계에서 차지하는 비중은 매우 크다. 스파크는 미국 버클리 대학의 리서치 프로젝트로 시작해서 지금은 전 세계에서 가장 활발한 오픈 소스 기반 데이터 처리 프로젝트가 됐다. 처음부터 대규모 데이터 처리를 염두에 두고 디자인됐기 때문에 빅데이터 처리에 매우 최적화됐고 이름처럼 속도가 빠르다. 2.0부터는 다양한 머신 러닝 라이브러리 지원을 통해 머신 러닝 데이터 처리 프레임워크로도 각광받고 있다. 이뿐만 아니라 스칼라, 자바, 파이썬, R 등 다양한 프로그래밍 언어 지원을 통해 개발자가 언어의 제약 없이 손쉽게 접근할 수 있고 포팅이 쉽다는 장점이 있다.
이 책은 단순한 데이터 처리, 스트리밍 데이터, 그래프 모델 구성, 스파크를 이용한 데이터 차트 그리기를 넘어 MLlib를 활용한 머신 러닝 예제까지, 입문자와 고급 개발자 모두가 활용 할 수 있는 다양한 예제를 제공한다. 이렇게 누구나 쉽게 스파크를 배울 수 있도록 했다. 대부분의 예제는 스칼라뿐 아니라 파이썬, R 버전으로도 제공되기 때문에 독자에게 편한 언어로 학습할 수 있다.
번역 기간 내내 여러가지 일과 병행하느라 우여곡절이 많았지만, 바람이 있다면 이 책이 한국의 개발자들이 머신 러닝과 빅데이터 세계에 뛰어드는 데 조금이나마 밑거름이 됐으면 한다. 나아가 독자들이 전세계 글로벌 IT 기업에서 나와 직접 마주치는 재미있는 순간이 오길 기대한다.

★ 지은이의 말 ★

스파크라 불리는 데이터 처리 프레임워크는, 하둡 맵리듀스 작업 성능이 낮은 부분에서도 반복적으로 데이터셋을 재사용함으로써 주목할만한 가치를 제공할 수 있음을 증명하기 위해 처음 개발됐다. 연구 논문 《Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center》는 스파크의 디자인 철학에 관해 이야기한다. 캘리포니아에 있는 버클리 대학 (University of California Berkeley) 연구진이 메소스를 테스트하기 위해 만든 매우 단순한 구현체는 후에 가장 활발한 아파치 프로젝트 중 하나가 됐다. 스파크는 처음부터 하둡 및 메소스, 독립형 모드와 같은 클러스터로 분산 데이터 처리를 수행하도록 디자인됐다. 스파크는 JVM 기반 데이터 처리 프레임워크이므로 JVM 기반 애플리케이션을 지원하는 대부분의 운영 체제에서 작동한다. 스파크는 UNIX 및 Mac OS X에 설치 가능하며 윈도우즈 환경에서도 사용률이 증가하고 있다.
스파크는 프로그래밍 언어 스칼라 및 자바, 파이썬, R을 포함하는 통일된 유니폼(uniform) 프로그래밍 모델을 제공한다. 즉, 스파크 애플리케이션을 개발할 때 거의 모든 언어에서 같은 스파크 API를 제공하므로 언어 선택을 손쉽게 할 수 있다. 이러한 방식으로 조직은 스파크를 새로 사용하더라도 이미 사용하고 있는 프로그래밍 언어로 스파크 프로그램을 개발할 수 있고, 필요에 따라 스파크 애플리케이션을 한 언어에서 다른 언어로 신속하게 포팅 (porting)할 수도 있다. 스파크의 대부분은 스칼라로 개발됐다. 스파크 프로그래밍 모델은 본질적으로 함수 프로그래밍을 지원한다. 가장 기본적인 스파크 데이터 추상화는 다른 모든 라이브러리가 기반으로 만들어진 탄력 분산 데이터 세트 RDD다. RDD 기반 스파크 프로그래밍 모델은 개발자가 데이터 처리 애플리케이션을 개발할 수 있는 가장 낮은 레벨 단계다.
스파크는 더 많은 데이터 처리 유스 케이스(use case)를 처리하기 위해 빠르게 성장했다. 제품 로드맵과 관련해서 앞을 내다보는 변화가 많아지면 비즈니스 사용자를 위해 더 높은 수준의 프로그래밍을 제공해야 하므로 요구 수준이 높아진다. 데이터프레임 추상화 기능을 갖춘 스파크 SQL 라이브러리는 스파크 코어에서 동작하고 널리 사용되는 SQL에 익숙한 대부분 개발자의 요구를 만족시킬 수 있도록 개발됐다.
데이터 과학자들은 계산 작업에 R을 사용한다. R의 가장 큰 한계는 처리해야 할 데이터의 크기가 R 프로그램을 실행 중인 컴퓨터의 메인 메모리 크기보다 작아야 한다는 것이다. 스파크 R API는 데이터프레임 추상화를 바탕으로 데이터 과학자에게 분산 데이터 처리의 신세계를 소개했다. 즉, 스파크 R API를 사용하면 하둡 또는 메소스에서 데이터를 병렬로 처리할 수 있으며 호스트 컴퓨터의 메모리 한계를 훨씬 뛰어 넘어서 데이터 처리 범위를 확장할 수 있다.
데이터를 수집하는 대규모 애플리케이션이 넘쳐나는 시대에서 데이터 소화 속도는 이전과 달리 매우 빨라졌다. 많은 애플리케이션 유스 케이스는 실시간 스트리밍 데이터 처리를 요구한다. 스파크 코어로 구축한 스파크 스트리밍 라이브러리는 이러한 유스 케이스 요구에 따라 실시간으로 스트리밍 데이터를 처리한다.
사용하지 않는 데이터 또는 스트리밍 중인 데이터는 머신 러닝 알고리즘에 입력해 데이터 모델을 학습시키고 이를 활용해 비즈니스 질문에 대한 대답을 제공한다. 스파크 이전에 개발한 모든 머신 러닝 프레임워크는 데이터를 처리하는 컴퓨터의 메모리 부족 및 병렬 처리 수행 불가, 읽기-쓰기의 불필요한 반복 등 많은 한계가 있었다. 스파크는 이러한 한계가 없기 때문에 스파크 코어와 데이터프레임을 바탕으로 구축된 스파크 MLlib 머신 러닝 라이브러리는 머신 러닝 액티비티와 데이터 처리 파이프라인을 함께 처리하는 최고의 머신 러닝 라이브러리로 널리 알려지게 되었다.
그래프는 특별한 유스 케이스에서 많이 사용하는 매우 유용한 데이터 구조다. 그래프 데이터 구조에서 데이터를 처리하는 데 사용하는 알고리즘은 계산 집약적이다. 스파크 이전에도 많은 그래프 처리 프레임워크가 존재했다. 대부분 처리 속도는 빠르지만 그래프 데이터 구조를 생성하기 위한 데이터를 사전 처리하는 것이 큰 병목 현상임이 드러났다. 스파크로 구축한 스파크 GraphX 라이브러리는 데이터 처리 및 그래프 처리를 하나의 연결된 액티비티로 묶어 처리하기 위해 그 격차를 크게 줄였다.
과거에 많은 데이터 처리 프레임워크가 존재했으며 그 중 대다수가 제품을 사용하는 고객들을 벤더 종속(lock-in) 의 함정에 빠뜨리려고 했다. 이에 반해 스파크는 라이센스 비용 없이 다양한 데이터 처리 요구를 해결하기 위한 매우 실용적인 대안을 제공하는 동시에 앞서가는 기업 다수의 지원을 받아 전문적인 제품 지원을 제공한다.
펼쳐보기
라자나라야난 토투바이카투마나(Rajanarayanan Thottuvaikkatumana)
줄여서 Raj는 다양한 나라의 회사에서 약 23년간 소프트웨어 개발 기술자로 일했다. 인도 및 싱가포르, 미국 등에서 일을 해왔고 현재는 영국에서 지내고 있다. 아키텍처 및 디자인, 소프트웨어 애플리케이션 개발 경력이 있으며, 유명한 데이터베이스 및 애플리케이션 개발 플랫폼, 웹 기술, 빅데이터 기술을 이용하는 일을 해왔다. 2000년 이후로는 주로 자바 관련기술을 써왔고 자바와 스칼라를 이용한 서버 프로그래밍을 해왔다. 많은 양의 트랜잭션 처리 및 분산, 동시성 처리 문제를 다뤄왔으며, 현재는 차세대 하둡 YARN을 기반으로 한 데이터 처리 플랫폼과 스칼라 기반의 아파치 스파크를 이용한 애플리케이션 스위트(suite)를 개발하고 있다. 그는 수학과 컴퓨터 정보 처리 시스템 분야에서 모두 석사 학위를 보유하고 있고 수많은 ITIL 수료증을 받았다. 클라우드 컴퓨터 관련 수업도 이수했다. 『Cassandra Design Patterns - Second Edition』(Packt, 2015)의 저자이기도 하다. 한가할 때는 클래식 음악을 듣고 테니스를 즐긴다.
옮긴이 방호남
공대 남자 엔지니어 5명이서 함께한 결혼 관련 스타트업 창업을 시작으로, 한국 과학 기술 연구원, 실리콘밸리 스타트업을 거쳐 현재 시애틀에 있는 아마존 웹 서비스(AWS) 본사 EC2 서버 엔지니어로 일하고 있다.
서버부터 웹 프론트엔드, 안드로이드, 웹앱 등 다양한 분야에서 경력을 쌓아 왔고 요즘은 대규모 분산 처리 시스템 디자인과 운용을 주로 한다. 컴퓨터 한 대로 세상을 바꾸는 일이 가능한 시대에 개발자로 일할 수 있음에 늘 감사한다. 소프트웨어 자체보다 소프트웨어가 세상에 제공할 수 있는 가치를 탐구하는 것에 더 흥미를 느끼고 있다.
펼쳐보기

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.
도서평점
내용
등록하기
0/2000자
교환/반품 방법
  • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
  • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
교환/반품 가능기간
  • 변심반품의 경우 수령 후 7일 이내
  • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
교환/반품 비용
  • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
교환/반품 불가사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 예) 만화, 잡지, 수험서 및 문제집류
  • 복제가 가능한 상품 등의 포장을 훼손한 경우 예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
상품 품절
  • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

이 분야의 베스트

더보기 >

    이 분야의 신간

    더보기 >
      맨위로가기

      영풍문고 로고

      • 회사명 : (주)영풍문고
      • 대표이사 : 김경환
      • 소재지 : 서울특별시 종로구 청계천로 41 (우)03188
      • 사업자 등록번호 : 773-86-01800 ㅣ 통신판매업 신고번호 : 2023-서울종로-0130 [ 사업자정보확인 ]
      • 개인정보관리 책임자 : 조순제 ㅣ customer@ypbooks.co.kr ㅣ 대량주문 : webmaster@ypbooks.co.kr
      COPYRIGHT © YOUNGPOONG BOOKSTORE INC. ALL RIGHTS RESERVED.
      영풍문고 네이버블로그 영풍문고 인스타그램
      맨위로가기