MySQL 성능 최적화
28,000원
고급
도서 소개
스파크를 처음 접하는 입문자를 위한 안내서!
2017년 현재, 스파크는 RDD보다도 더 뛰어난 기능으로 무장한 데이터셋을 추가로 도입해서 머신러닝, 그래프 알고리즘, 실시간 스트리밍 처리는 물론이고 하둡, R, 하이브(Hive), 카프카(Kafka), 아파치 제플린(Zeppelin) 등 빅데이터 분야의 기존 스타들과의 연동을 통해 데이터 처리와 관련된 거의 대부분의 영역에서 영향력을 넓혀가고 있다.
이 책은 스파크를 처음 접하는 개발자들이 빠른 시간 내에 스파크가 무엇이고 어디에 어떻게 활용할 수 있는지 실무에 필요한 감을 잡을 수 있도록 스파크 전체 모듈에 대한 설명과 예제를 담고 있다. 특히 스파크를 써 보고 싶지만 새로운 언어를 배우는 부담 때문에 망설이던 개발자들을 위해 스칼라, 자바, 파이썬 예제를 수록하였다.
저자 소개
백성민
어쩌다 시작한 개발이 천직이 되어 버린 행복한 개발자. 좋아하고 즐기는 일을 직업으로 가질 수 있음에 더없이 감사한 마음으로 살고 있다. 2001년 이후 줄곧 실무 개발자로 일하고 있으며, 지금은 한 포털 회사에서 광고 데이터 분석 업무를 담당하고 있다. 최근에는 프런트엔드 기술에도 관심을 두고 모바일 및 웹 기술도 배워나가려 노력하고 있으며, 새해를 맞아 작년에 사놓기만 하고 미처 읽지 못했던 책들을 다 읽어 보고 싶다는 꿈을 꾸고 있다.
번역서로 『거침없이 배우는 자바파워툴』(지앤선, 2011)이 있다.
목차
- ▣ 01장: 스파크 소개
- 1.1 스파크
- 1.1.1 빅데이터의 등장
- 1.1.2 빅데이터의 정의
- 1.1.3 빅데이터 솔루션
- 1.1.4 스파크
- 1.1.5 RDD(Resilient Distributed Dataset) 소개와 연산
- 1.1.6 DAG
- 1.1.7 람다 아키텍처
- 1.2 스파크 설치
- 1.2.1 스파크 실행 모드의 이해
- 1.2.2 사전 준비
- 1.2.3 스파크 설치
- 1.2.4 예제 실행
- 1.2.5 스파크 셸
- 1.2.6 실행 옵션
- 1.2.7 더 살펴보기
- 1.3 개발 환경 구축
- 1.3.1 로컬 개발 환경 구축
- 1.4 예제 프로젝트 설정
- 1.4.1 WordCount 예제 실행
- 1.5 정리
- 1.1 스파크
- ▣ 02장: RDD
- 2.1 RDD
- 2.1.1 들어가기에 앞서
- 2.1.2 스파크컨텍스트 생성
- 2.1.3 RDD 생성
- 2.1.4 RDD 기본 액션
- 2.1.5 RDD 트랜스포메이션
- 2.1.6 RDD 액션
- 2.1.7 RDD 데이터 불러오기와 저장하기
- 2.1.8 클러스터 환경에서의 공유 변수
- 2.1.9 정리
- 2.2 정리
- 2.1 RDD
- ▣ 03장: 클러스터 환경
- 3.1 클러스터 환경
- 3.1.1 클러스터 모드와 컴포넌트
- 3.1.2 클러스터 모드를 위한 시스템 구성
- 3.1.3 드라이버 프로그램과 디플로이 모드
- 3.2 클러스터 매니저
- 3.2.1 스탠드얼론 클러스터 매니저
- 3.2.2 Apache Mesos
- 3.2.3 얀
- 3.2.4 히스토리 서버와 매트릭스
- 3.1 클러스터 환경
- ▣ 04장: 스파크 설정
- 4.1 스파크 프로퍼티
- 4.2 환경변수
- 4.3 로깅 설정
- 4.4 스케줄링
- 4.4.1 애플리케이션 간의 자원 스케줄링
- 4.4.2 단일 애플리케이션 내부에서의 자원 스케줄링
- 4.5 정리
- ▣ 05장: 스파크 SQL
- 5.1 데이터셋
- 5.2 연산의 종류와 주요 API
- 5.3 코드 작성 절차 및 단어 수 세기 예제
- 5.4 스파크세션
- 5.5 데이터프레임, 로우, 칼럼
- 5.5.1 데이터프레임 생성
- 5.5.2 주요 연산 및 사용법
- 5.6 데이터셋
- 5.6.1 데이터셋 생성
- 5.6.2 타입 트랜스포메이션 연산
- 5.7 하이브 연동
- 5.8 분산 SQL 엔진
- 5.9 Spark SQL CLI
- 5.10 정리
- ▣ 06장: 스파크 스트리밍
- 6.1 개요 및 주요 용어
- 6.1.1 스트리밍컨텍스트
- 6.1.2 DStream(Discretized Streams)
- 6.2 데이터 읽기
- 6.2.1 소켓
- 6.2.2 파일
- 6.2.3 RDD 큐(Queue of RDD)
- 6.2.4 카프카(Kafka)
- 6.3 데이터 다루기(기본 연산)
- 6.3.1 print()
- 6.3.2 map(func)
- 6.3.3 flatMap(func)
- 6.3.4 count(), countByValue()
- 6.3.5 reduce(func), reduceByKey(func)
- 6.3.6 filter(func)
- 6.3.7 union()
- 6.3.8 join()
- 6.4 데이터 다루기(고급 연산)
- 6.4.1 transform(func)
- 6.4.2 updateStateByKey()
- 6.4.3 윈도우 연산
- 6.4.4 window(windowLength, slideInterval)
- 6.4.5 countByWindow(windowLength, slideInterval)
- 6.4.6 reduceByWindow(func, windowLength, slideInterval)
- 6.4.7 reduceByKeyAndWindow(func, invFunc, windowLength, slideInterval, [numTasks])
- 6.4.8 countByValueAndWindow(windowLength, slideInterval, [numTasks])
- 6.5 데이터의 저장
- 6.5.1 saveAsTextFiles(), saveAsObjectFiles(), saveAsHadoopFiles()
- 6.5.2 foreachRDD()
- 6.6 CheckPoint
- 6.7 캐시
- 6.8 모니터링
- 6.9 주요 설정
- 6.1 개요 및 주요 용어
- ▣ 07장: 스트럭처 스트리밍
- 7.1 개요
- 7.2 프로그래밍 절차
- 7.3 데이터프레임과 데이터셋 생성
- 7.4 스트리밍 연산
- 7.4.1 기본 연산 및 조인 연산
- 7.4.2 윈도우 연산
- 7.4.3 워터마킹
- 7.4.4 스트리밍 쿼리
- 7.5 정리
- ▣ 08장: MLLIb
- 8.1 개요
- 8.2 관측과 특성
- 8.3 레이블
- 8.4 연속형 데이터와 이산형 데이터
- 8.5 알고리즘과 모델
- 8.6 파라메트릭 알고리즘
- 8.7 지도학습과 비지도학습
- 8.8 훈련 데이터와 테스트 데이터
- 8.9 MLlib API
- 8.10 의존성 설정
- 8.11 벡터와 LabeledPoint
- 8.11.1 벡터
- 8.11.2 LabeledPoint
- 8.12 파이프라인
- 8.13 알고리즘
- 8.13.1 Tokenizer
- 8.13.2 TF-IDF
- 8.13.3 StringIndexer, IndexToString
- 8.14 회귀와 분류
- 8.14.1 회귀
- 8.14.2 분류
- 8.15 클러스터링
- 8.16 협업 필터링
- 8.17 정리
- ▣ 09장: SparkR
- 9.1 개요
- 9.2 R 설치 및 실행
- 9.3 데이터프레임
- 9.4 데이터프레임 생성
- 9.4.1 R데이터프레임으로부터 생성
- 9.4.2 파일로부터 생성
- 9.5 데이터프레임 연산
- 9.5.1 조회 및 기본 연산
- 9.5.2 그룹 및 집계 연산
- 9.5.3 칼럼 연산
- 9.5.4 집합 연산
- 9.5.5 dapply(), dapplyCollect()
- 9.5.6 gapply(), gapplyCollect()
- 9.5.7 spark.lapply()
- 9.5.8 createOrReplaceTempView()
- 9.5.9 write()
- 9.6 하이브 연동
- 9.7 머신러닝
- 9.8 정리
- ▣ 10장: GraphX
- 10.1 주요 용어
- 10.1.1 유방향 그래프
- 10.1.2 유방향 멀티 그래프
- 10.1.3 속성 그래프
- 10.2 데이터 타입
- 10.2.1 RDD
- 10.2.2 VertextID
- 10.2.3 꼭짓점
- 10.2.4 선(Edge)
- 10.2.5 EdgeTriplet
- 10.2.6 VertexRDD
- 10.2.7 EdgeRDD
- 10.2.8 Graph
- 10.3 그래프 생성
- 10.4 그래프 연산
- 10.4.1 numEdges, numVertices
- 10.4.2 inDegrees, outDegrees, degrees
- 10.4.3 vertices, edges, triplets
- 10.4.4 mapVertices(), mapEdges(), mapTriplets()
- 10.4.5 reverse()
- 10.4.6 subgraph()
- 10.4.7 mask()
- 10.4.8 groupEdges()
- 10.4.9 joinVertices(), outerJoinVertices()
- 10.4.10 collectNeighborIds(), collectNeighbors()
- 10.4.11 aggregateMessages()
- 10.4.12 pregel()
- 10.5 VertextRDD, EdgeRDD 연산
- 10.6 그래프 알고리즘
- 10.7 정리
- 10.1 주요 용어
- ▣ 부록: 스칼라란?
- 스칼라 설치
- 스칼라 셸
- 변수 타입과 변수 선언
- Range와 형변환
- 클래스, 객체, 컴패니언 오브젝트
- 트레이트와 상속
- apply
- 튜플과 옵션, 케이스클래스
- 패턴 매치
- 패키지 객체
- type
- 임포트
- 함수와 메서드
- 제네릭
- 암묵적 변환과 타입 클래스 패턴
- 정리
예제 코드
예제코드 관련 GitHub 페이지
- GitHub 페이지: https://github.com/wikibook/spark
- ZIP 형식으로 다운로드: https://github.com/wikibook/spark/archive/master.zip
정오표
-
72쪽, 1번째 줄
마스터 정보는
--mater라는 ==> 마스터 정보는--master라는 -
123쪽, 예제 2-69의 6번째 줄
print("Right: %s" % result1.collect())==>
print("Right: %s" % result2.collect()) -
224쪽, 본문 중간의 번호 목록
4. 3번단계가 제대로 수행됐다면==>
3. 2번단계가 제대로 수행됐다면 -
236쪽, 본문 가운데의
spark-defaults.conf설정 예제에서 맨 마지막에 나오는 다음 항목을 삭제spark.eventLog.enabled true -
460쪽, 6번째 줄
다층 퍼셉트론 분류자(Multilayer perceptron
classfire) ==> 다층 퍼셉트론 분류자(Multilayer perceptronclassifier)