spark를 배우면서 기억해놓아야할 내용들
- 빅데이터 처리를 위한 분산 시스템 환경을 통칭
- spark와 마찬가지로 apache에서 같이 관리되고 있는 오픈소스
- HDFS(Hadoop Distributed File System)
- scalablity, hardware failure를 극복하는(fault tolerence) 고가용성을 지원한다
- master/slave 구조. master node는 이중화되어 metadata를 관리하고 slave node는 multiple data node로 데이터 저장
- 데이터는 block단위로 복제되어 여러 노드에 저장되기 때문에 fault tolerence가 가능
- default block 사이즈는 최근에 128mb
- HDFS을 베이스로 yarn resource manager, map reduce 그리고 spark와 같은 어플리케이션이 올라가게 된다
- map reduce(MR)는 대상 노드에서 map 함수로 추출하고 다른 노드에서 정렬 및 병합해서 분산 노드에서 결과를 도출하는 방식
- spark도 map reduce 모델을 기반으로 만들어졌다
- cluster computing에서 map reduce보다 디스크 기준 10배 메모리 기준 100배 빠르다
- United Computing Engine and a Set of library for Parallel Data Processing on Computer Cluster
- low level RDDs, Distribute Varabile을 기반으로 구조화됨
- MR vs Spark
- MR은 map에서 얻어진 결과를 다시 hdfs에 씀. 읽고 쓰고를 반복해서 성능이 떨어짐
- Spark은 점점 더 가격이 저렴해지는 메모리를 기반으로 처리 결과를 저장함
- scalar 언어로 구현됨
- spark streaming으로 실시간 스트리밍 가능
- todo: driver, session, executors(실제 일을 하는)
- schema가 있는 데이터 처리
- SQL에 최적화된 DB 대체는
- 스파크 완벽 가이드 책 실행 샘플 docker
docker run -p 8080:8080 -p 4040:4040 rheor108/spark_the_definitive_guide_practice