9가지 사례로 익히는 고급 스파크 분석 (Advanced Analytics with Spark)

 

OREILLY

한빛미디어

샌디라이자, 유리 레이저슨, 션 오언, 조시 윌스 지음

박상은, 권한철, 서양주 옮김

 

제목 그대로 Chapter 1,2 는 빅데이터와 spark 에 대한 설명을 하고 이후에는 9가지 사례에 따른 실제 분석모델 예시를 설명해주는 책입니다.

책을 보는 순서가 약간 엇갈려 scala 보다 조금 먼저보게 되었는데 최소한 spark 나 scala 를 써보고 난 다음에 책을 보는것을 추천드립니다. 기본적인 지식없이 이해하기는 좀 어려운면이 있으며 오레일리 특성상 초심자가 이해하기 쉽도록 친절히 설명해주는 책은 아니니까요. 어느정도 이 분야에 있는 사람을 위한 책입니다.

아파치 스파크는 클러스터의 여러 노드로 프로그램을 분배하고, 그 위에서 동작하는 프로그램을 개발할 수 있도록 하는 오픈 소스 프레임워크입니다.

맵리듀스랑 비교하면 3가지 개선점이 있습니다.

1. 맵리듀스의 선형 확장성과 결함 허용성을 유지하면서 맵리듀스의 임시결과를 파일시스템에 저장하지 않고 바로 다음단계 프로세스로 진행할 수 있습니다.

2. 사용자가 연산을 쉽게 하도록 개발자 중심의 간소화된 API를 제공합니다.

3. 인메모리 처리방식으로 RDD(Resilient Distributed Dataset) 탄력적 분산데이터셋 이라는 추상개념으로 개발자가 처리 파이프라인의 어느 지점이라도 데이터를 클러스터의 메모리로 저장할 수 있도록 합니다. 이는 과거와 달리 같은 데이터를 사용하기 위해 데이터를 재연산하거나 디스크로부터 다시 읽을 필요가 없다는 이야기입니다.

 

스파크는 JVM 위에서 수행하기 때문에 자바 스택에서 돌아가는 운영, 디버깅 도구를 활용할 수 있습니다.

스파크는 하둡 생태계의 다양한 도구와 통합하기 좋습니다. 맵리듀스가 지원하는 모든 데이터포맷을 읽고 쓸 수 있고 Avro, Parquet, CSV 파일을 사용할수 있습니다. HBase 카산드라 와 같은 NoSQL DB를 사용할 수 있으며 스파크 스트리밍 라이브러리는 Flume이나 Kafka 로부터 스트림 데이터를 입력받을 수 있습니다.

스파크에 대한 특징은 위와같이 간략하게 개요만 설명하였고 상세한 내용은 다른책을 참고하라는 친절한(?) 가이드가 있습니다. 다만 RDD 에 대한 내용은 여러차례 강조를 한 부분이기에 간략히 정리해 놓습니다.

탄력적 분산 데이터셋(RDD)

RDD는 클러스터의 여러노드에 파티션으로 나뉘어 분산되며, 각 파티션은 RDD의 전체 데이터 중 일부를 담게된다.

파티션은 스파크에서 병렬 처리되는 단위다.

스파크 프레임워크는 한 파티션 안의 객체들을 순차적으로 처리하고, 파티션 단위로는 병렬로 처리한다.

RDD를 생성하는 아주 간단한 방법은 로컬 객체 컬렉션을 인수로 SparkContext 의 parallelize 메서드를 실행하는 것이다.

 

소개이후 인상적인 부분 요약

1. 스파크는 시각화 도구를 제공하지 않는다. R을 통한 시각화

2. 위키백과 이해하기는 LSA(숨은의미분석) 과 NLP(자연어처리) 기술로 처리한다.

3. 분산시스템인 스파크는 작업 대상 자바 객체들을 자주 직렬화 한다. 하지만 대부분의 경우에 자바직렬화 대신 Kryo 직렬화를 추천한다. 더 빠르고 더 촘촘한 포맷이기 때문이다.

4. 어큐뮬레이터는 잡이 실행되는 동안 부가적으로 몇몇 통계량을 수집해주는 스파크 구조체이다.

5. 예제는 textFile 을 사용하지만 대규모 데이터셋을 저장할때는 공간도 덜 차지하고 형태를 강제할 수 있는 바이너리 형식을 권장한다.

6. 현재 활발히 진행되는 스파크 하위프로젝트는 MLlib, 스파크 스트리밍, 스파크 SQL, 그래프엑스 가 있다.

 

책에서의 각 챕터로 구성된 예제 제목

1. 오디오스크로블러 데이터셋으로 음악 추천하기

2. 의사 결정 나무로 산림 식생 분포 예측하기

3. K-평균 군집화로 네트워크 이상 감지하기

4. 숨은 의미 분석으로 위키백과 이해하기

5. 그래프엑스로 동시발생 네트워크 분석하기

6. 뉴욕 택시  운행 데이터로 위치 및 시간 데이터 분석하기

7. 몬테카를로 시뮬레이션으로 금융 리스크 추정하기

8. BDG 프로젝트와 유전체학 데이터 분석하기

9. 파이스파크와 썬더로 신경 영상 데이터 분석하기

'Book' 카테고리의 다른 글

무역 천재가 된 홍대리  (0) 2019.03.21
구글은 어떻게 일하는가 독후감  (0) 2017.01.02

+ Recent posts