스파크를 처음 접하는 입문자를 위한 안내서!

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 정리
    •  
  • ▣ 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 정리
    •  
  • ▣ 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 히스토리 서버와 매트릭스
    •  
  • ▣ 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 주요 설정
    •  
  • ▣ 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 정리
    •  
  • ▣ 부록: 스칼라란?
    • 스칼라 설치
    • 스칼라 셸
    • 변수 타입과 변수 선언
    • Range와 형변환
    • 클래스, 객체, 컴패니언 오브젝트
    • 트레이트와 상속
    • apply
    • 튜플과 옵션, 케이스클래스
    • 패턴 매치
    • 패키지 객체
    • type
    • 임포트
    • 함수와 메서드
    • 제네릭
    • 암묵적 변환과 타입 클래스 패턴
    • 정리
  • 72쪽, 1번째 줄

    마스터 정보는 --mater라는 ==> 마스터 정보는 --master라는

예제코드 관련 GitHub 페이지

관련 글


엮인 글

엮인 글 주소: http://wikibook.co.kr/spark/trackback/