HOME > 상세정보

상세정보

하이 퍼포먼스 스파크 : 클러스터 규모 확장을 위한 우수 사례와 아파치 스파크 최적화

자료유형
단행본
서명 / 저자사항
하이 퍼포먼스 스파크 : 클러스터 규모 확장을 위한 우수 사례와 아파치 스파크 최적화 / 홀든 카로, 레이첼 워렌 지음 ; 박종영 옮김
발행사항
파주 : 제이펍, 2018
형태사항
xx, 356 p. : 삽화 ; 25 cm
총서사항
제이펍의 클라우드 시리즈 = Jpub's cloud series ; 16
원표제
High performance Spark : best practices for scaling and optimizing Apache Spark
ISBN
9791188621248
일반주기
색인수록
일반주제명
Big data Data mining --Computer programs
000 00000cam c2200205 c 4500
001 000045946051
005 20180705131446
007 ta
008 180705s2018 ggka 001c kor
020 ▼a 9791188621248 ▼g 93000
035 ▼a (KERIS)BIB000014844583
040 ▼a 211027 ▼c 211027 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 006.312 ▼2 23
085 ▼a 006.312 ▼2 DDCK
090 ▼a 006.312 ▼b 2018z5
100 1 ▼a Karau, Holden
245 1 0 ▼a 하이 퍼포먼스 스파크 : ▼b 클러스터 규모 확장을 위한 우수 사례와 아파치 스파크 최적화 / ▼d 홀든 카로, ▼e 레이첼 워렌 지음 ; ▼e 박종영 옮김
246 1 9 ▼a High performance Spark : ▼b best practices for scaling and optimizing Apache Spark
260 ▼a 파주 : ▼b 제이펍, ▼c 2018
300 ▼a xx, 356 p. : ▼b 삽화 ; ▼c 25 cm
440 0 0 ▼a 제이펍의 클라우드 시리즈 = ▼x Jpub's cloud series ; ▼v 16
500 ▼a 색인수록
630 0 0 ▼a Spark (Electronic resource : Apache Software Foundation)
650 0 ▼a Big data
650 0 ▼a Data mining ▼x Computer programs
700 1 ▼a Warren, Rachel, ▼e
700 1 ▼a 박종영, ▼e
900 1 0 ▼a 카로, 홀든, ▼e
900 1 0 ▼a 워렌, 레이첼, ▼e
945 ▼a KLPA

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/단행본실/ 청구기호 006.312 2018z5 등록번호 121245162 도서상태 대출중 반납예정일 2020-12-11 예약 예약가능 R 서비스 M
No. 2 소장처 세종학술정보원/과학기술실/ 청구기호 006.312 2018z5 등록번호 151349886 도서상태 대출가능 반납예정일 예약 서비스
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/단행본실/ 청구기호 006.312 2018z5 등록번호 121245162 도서상태 대출중 반납예정일 2020-12-11 예약 예약가능 R 서비스 M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 세종학술정보원/과학기술실/ 청구기호 006.312 2018z5 등록번호 151349886 도서상태 대출가능 반납예정일 예약 서비스

컨텐츠정보

책소개

아파치 스파크의 성능 최적화를 위한 코드 작성법을 알려준다. 대규모 데이터를 다루는 소프트웨어 엔지니어, 데이터 엔지니어, 개발자, 시스템 관리자에게 데이터 인프라 비용과 개발 시간을 줄여주는 기술을 소개한다.

스파크 SQL의 새로운 인터페이스 성능을 향상시키는 방법, 코어 스파크와 스파크 SQL에서의 조인 종류 선택, 기본 RDD 트랜스포메이션을 최대한 활용하는 방법, 키/값 페어 패러다임에서의 성능 이슈, 스칼라나 JVM 없이 고성능 스파크 코드를 작성하는 방법, 제시된 성능 향상을 위해 기능과 성능을 테스트하는 방법 등을 담았다.

아파치 스파크의 성능 최적화를 위한 코드 작성법!

모든 것이 잘 동작할 때 아파치 스파크는 놀라운 성능을 보여주지만, 아직 기대한 만큼의 성능을 보지 못했거나 스파크를 실무에 적용할 만한 확신을 얻지 못하고 있다면 이 책은 당신을 위한 것이다. 저자들은 적은 자원을 쓰면서도 더 빠르고 더 큰 데이터를 다룰 수 있도록 아파치 스파크의 성능 최적화를 잘 보여준다.

대규모 데이터를 다루는 소프트웨어 엔지니어, 데이터 엔지니어, 개발자, 시스템 관리자에게 더할 나위 없는 이 책은 데이터 인프라 비용과 개발 시간을 줄여주는 기술을 소개한다. 스파크를 깊게 이해함과 동시에 스파크의 독보적인 성능을 어떻게 끌어내는지 배울 수 있을 것이다.

이 책의 주요 내용
■ 스파크 SQL의 새로운 인터페이스 성능을 향상시키는 방법
■ 코어 스파크와 스파크 SQL에서의 조인 종류 선택
■ 기본 RDD 트랜스포메이션을 최대한 활용하는 방법
■ 키/값 페어 패러다임에서의 성능 이슈
■ 스칼라나 JVM 없이 고성능 스파크 코드를 작성하는 방법
■ 제시된 성능 향상을 위해 기능과 성능을 테스트하는 방법
■ 스파크 MLlib 및 스파크 ML 머신러닝 라이브러리 사용 방법
■ 스파크의 스트리밍 컴포넌트와 외부 커뮤니티 패키지


정보제공 : Aladin

저자소개

레이첼 워렌(지은이)

알파인 데이터(Alpine Data)의 소프트웨어 엔지니어이자 데이터 과학자다. 그녀는 현실 데이터 처리와 머신러닝 작업에 스파크를 사용하고 있다. 또한, 실무와 교육계 양쪽에서 분석가이자 멘토로 활동하고 있다.

홀든 카로(지은이)

트랜스젠더 캐나다인이면서 IBM 스파크 기술 센터의 소프트웨어 개발 엔지니어다. 그녀는 스파크 커미터이면서 파이 스파크와 머신러닝에 많은 기여를 하고 있다. 또한, 다양한 국제 콘퍼런스에서 스파크 발표자로 활동하고 있다.

박종영(옮긴이)

한국 오라클, 세븐 네트웍스 코리아를 비롯한 여러 회사에서 DBMS 엔진 및 푸시 메시징 엔진 등을 개발했다. 그루터를 거쳐 지금은 쿠팡에서 빅데이터 관련 개발 업무를 하고 있다. 아파치 타조(http://tajo.apache.org) 커미터로도 활동 중이다. 옮긴 책으로는 《도커: 설치부터 운영까지》, 《러닝 스파크》가 있다.

정보제공 : Aladin

목차

CHAPTER 01 고성능 처리를 위한 스파크 시작하기 1 
스파크는 무엇이며 성능은 왜 중요한가? 1 
이 책에서 얻을 수 있는 것은 무엇인가? 2 
스파크 버전 규칙 3 
왜 스칼라인가? 4 
스파크 전문가가 되고 싶다면 어쨌든 약간이라도 스칼라를 알아야 한다 4 
스파크의 스칼라 API는 자바 API보다 훨씬 사용하기 쉽다 5 
스칼라는 파이썬보다 성능이 더 뛰어나다 5 
꼭 스칼라를 써야만 하는가? 5 
스칼라 배우기 6 
요약 7 

CHAPTER 02 스파크는 어떻게 동작하는가? 8 
스파크는 빅데이터 생태계에서 어떻게 자리 잡고 있는가? 9 
스파크 컴포넌트 10 
스파크의 병렬 연산 모델: RDD 12 
지연 평가 13 
메모리 영속화와 메모리 관리 16 
불변성과 RDD 인터페이스 17 
RDD의 종류 19 
RDD의 함수들: 트랜스포메이션 vs. 액션 20 
넓은 종속성 vs. 좁은 종속성 21 
스파크 잡 스케줄링 23 
애플리케이션 간의 자원 할당 23 
스파크 애플리케이션 23 
스파크 잡의 해부 25 
DAG 26 
잡 27 
스테이지 27 
태스크 28 
요약 30 

CHAPTER 03 DataFrame, Dataset와 스파크 SQL 31 
SparkSession(혹은 HiveContext 또는 SQLContext)으로 시작하기 33 
스파크 SQL 의존성 35 
스파크 의존성 관리 36 
하이브 JAR 회피 37 
스키마의 기초 38 
DataFrame API 42 
트랜스포메이션 42 
다중 DataFrame 트랜스포메이션 54 
전통적인 SQL 질의/하이브 데이터와 상호 연동하기 54 
DataFrame과 Dataset에서의 데이터 표현 55 
텅스텐 55 
데이터 적재/저장 함수들 57 
DataFrameWriter와 DataFrameReader 57 
포맷들 58 
저장 모드 68 
파티션(복구 및 쓰기) 68 
Dataset 69 
RDD, DataFrame, 로컬 컬렉션과의 상호 운용성 70 
컴파일 타임의 강력한 타입 체크 71 
더욱 쉬운(RDD와 ‘유사한’) 함수형 트랜스포메이션 71 
관계형 트랜스포메이션 72 
여러 Dataset에 대한 관계형 트랜스포메이션 72 
Dataset에서의 그룹 연산 72 
사용자 정의 함수와 사용자 집계 연산 함수(UDF, UDAF) 74 
질의 옵티마이저 76 
논리적/물리적 계획 76 
코드 생성 77 
큰 규모의 질의 계획과 반복 알고리즘 77 
스파크 SQL 질의 디버깅 78 
JDBC/ODBC 서버 78 
요약 80 

CHAPTER 04 조인(SQL과 코어 스파크) 81 
코어 스파크 조인 81 
조인 형태 선택하기 83 
실행 계획 선택하기 85 
스파크 SQL 조인 88 
DataFrame 조인 89 
Dataset 조인 92 
요약 93 

CHAPTER 05 효율적인 트랜스포메이션 94 
좁은 트랜스포메이션 vs. 넓은 트랜스포메이션 95 
성능에 대한 고려 사항 98 
장애 내구성의 고려 사항 98 
coalesce의 특별한 경우 99 
내 트랜스포메이션은 어떤 타입의 RDD를 반환하는가? 100 
객체 생성 최소화하기 101 
기존 객체 재활용하기 102 
더 작은 자료 구조 사용하기 105 
mapPartitions로 수행하는 반복자-반복자 트랜스포메이션 109 
반복자-반복자 트랜스포메이션이란 무엇인가? 109 
시간적/공간적인 이득 111 
예제 111 
집합 연산 114 
셋업 오버헤드 줄이기 116 
공유 변수 116 
브로드캐스트 변수 117 
어큐뮬레이터 118 
RDD 재사용 123 
재사용의 사례들 123 
재연산이 충분히 적은 비용인지 판단하기 126 
재사용의 형태: 캐시, 영속화, 체크포인트, 셔플 파일들 128 
알루시오(기존의 타키온) 132 
LRU 캐싱 133 
혼잡한 클러스터에 대한 고려 사항 135 
어큐뮬레이터와의 상호 작용 136 
요약 136 

CHAPTER 06 키/값 데이터로 작업하기 137 
골디락스 예제 139 
골디락스 버전 0: 반복적인 해법 141 
PairRDDFunctions과 OrderedRDDFunctions의 사용법 143 
키/값 쌍의 액션들 144 
groupByKey 함수는 왜 그렇게 위험한가? 145 
골디락스 버전 1: groupByKey 해결책 145 
집계 연산 선택하기 149 
성능 고려 사항 및 집계 연산에 대한 사전 149 
다중 RDD 연산 153 
공동 그룹화 153 
파티셔너와 키/값 데이터 154 
스파크 파티셔너 객체 사용하기 155 
해시 파티셔닝 155 
레인지 파티셔닝 156 
사용자 파티셔닝 157 
트랜스포메이션에서 파티셔닝 정보 보존하기 157 
공존하는 RDD와 공동 파티셔닝된 RDD 활용하기 158 
PairRDDFunctions의 매핑과 파티셔닝 함수 사전 160 
OrderedRDDFunctions의 함수 사전 162 
sortByKey를 사용하여 두 개의 키로 정렬하기 163 
보조 정렬과 repartitionAndSortWithinPartitions 함수 164 
키로 그룹화하고 값을 정렬하는 함수에 repartitionAndSortWithinPartitions 활용하기 165 
두 개의 순서에 의해 정렬되지 않는 이유 168 
골디락스 버전 2: 보조 정렬 169 
골디락스 문제에 대한 다른 접근 172 
골디락스 버전 3: 값들로 정렬하기 178 
뒤처지는 작업 감지와 균형이 맞지 않는 데이터 179 
다시 골디락스로 돌아와서 180 
골디락스 버전 4: 각 파티션에서 고유한 값들만 남기기 181 
요약 187 

CHAPTER 07 스칼라를 넘어서 189 
스칼라의 너머 ― JVM 안에서 191 
스칼라의 너머 ― JVM 너머 195 
파이스파크는 어떻게 동작하는가? 195 
스파크R은 어떻게 동작하는가? 205 
스파크.jl(줄리아 스파크) 207 
에클레어 JS는 어떻게 동작하는가? 208 
CLR에서의 스파크 ― C#과 친구들 209 
스파크에서 다른 언어 호출하기 209 
pipe 및 기타 도구 사용하기 209 
JNI 211 
JNA 214 
모든 것의 아래에는 포트란이 있다 215 
GPU 사용하기 216 
미래 217 
요약 217 

CHAPTER 08 테스트와 검증 219 
단위 테스트 220 
일반적인 스파크 단위 테스트 220 
RDD 흉내 내기 225 
테스트 데이터 수집 227 
대용량 데이터세트 생성 227 
샘플링 228 
스칼라체크로 특성 체크하기 230 
RDD끼리의 차이 계산하기 231 
통합 테스트 233 
통합 테스트 환경 선택하기 234 
성능 측정 235 
성능 측정을 위한 스파크 카운터 사용 235 
성능 검증을 위한 프로젝트들 236 
작업 검증 237 
요약 238 

CHAPTER 09 스파크 MLlib과 ML 239 
스파크 MLlib과 ML 중 어떤 것을 선택할 것인가? 239 
MLlib으로 작업하기 240 
MLlib 시작하기(import 정의하기) 241 
MLlib의 특성 인코딩과 데이터 준비 242 
특성 정량화와 선정 247 
MLlib 모델 훈련 248 
예측 249 
서빙과 영속화 249 
모델 평가 252 
스파크 ML로 작업하기 252 
스파크 ML의 구성과 import 정의 253 
파이프라인 스테이지 254 
파라미터 설명 255 
데이터 인코딩 257 
데이터 정제 259 
스파크 ML의 모델 260 
한 파이프라인에 모두 집어넣기 261 
파이프라인 훈련 262 
개별 스테이지에 접근하기 262 
데이터 영속화와 스파크 ML 263 
자신만의 알고리즘으로 스파크 ML 파이프라인 확장하기 266 
모델과 파이프라인 영속화 및 스파크 ML로 서빙하기 274 
서빙에 대한 일반적인 고려 사항 274 
요약 275 

CHAPTER 10 스파크 컴포넌트와 패키지 276 
스파크로 스트리밍 처리하기 278 
소스와 싱크 279 
배치 간격 281 
데이터 체크포인트 간격 282 
DStream에서의 고려 사항 283 
구조적 스트리밍에서의 고려 사항 284 
고가용성 모드(드라이버 장애 해결 혹은 체크포인팅) 293 
그래프X 294 
커뮤니티 패키지와 라이브러리 사용하기 294 
스파크 패키지 만들기 296 
요약 297 

APPENDIX A 튜닝, 디버깅, 그리고 개발자가 신경 쓰지 않는 것들 298 
스파크 튜닝과 클러스터 사이징 298 
스파크 세팅은 어떻게 설정하는가? 299 
자신의 클러스터에 대해 적절한 정보를 파악하는 법 300 
기본적인 스파크 코어 세팅: 스파크 애플리케이션에 얼마나 많은 자원이 할당되는가? 301 
이그제큐터와 드라이버의 메모리 오버헤드 계산 302 
스파크 드라이버의 규모 303 
소수의 큰 이그제큐터 vs. 다수의 작은 이그제큐터 303 
클러스터 자원 할당과 동적 할당 305 
이그제큐터의 공간 할당 307 
파티션 개수와 크기 312 
직렬화 옵션 315 
크리오 315 
몇몇 추가적인 디버깅 테크닉 316 

찾아보기 351

관련분야 신착자료