SlideShare a Scribd company logo
Start Spark!!
01
백종현
1. 스파크란? 02
〮 오픈소스 클러스터 컴퓨팅 프레임워크
〮 Spark = MR + interactive query + streaming
〮 하둡 API를 사용하는 저장 시스템 지원
- HDFS, S3, Cassandra, Hive, Hbase
〮 In-Memory
2. Spark vs Hadoop 03
1. Disk I/O
- iteration 작업 매 job마다 HDFS 접근
2. Hadoop + RAM
- fault-tolerant X
3. Hadoop + RAM + fault-tolerant(Piccolo)
- replicating : 하는동안 멈춰야 함…
- checkpoint : disk...
-> 그냥 느리다
2. RDD 04
〮 Resilient Distributed Dataset
〮 스토리지 -> RDD, RDD -> RDD
〮 Immutable, Read-Only
- 어떻게 만들어졌는지 알면 다시 만들 수 있다. -> lineage에 기록
〮 DAG(Directed Acyclic Graph)로 표현
3. Transformation and Action 05
4. Narrow and Wide dependencies 06
〮 Narrow Dependencies
- 작업이 한 노드에서(네트워크X)
- 그 노드에서 복원가능
〮 Wide Dependencies
- 노드간 셔플이 필요(네트워크O)
- 부셔지면 복원이 가능하지만 비쌈
5. Lazy-execution and Fault-tolerant 07
〮 Transformation : RDD -> RDD, lineage만 기록
〮 Action : lineage에 쌓인 것들 수행
-> lazy-execution
〮 RDD 망가져도 lineage를 통해 복구 가능
-> fault-tolerant
〮 DAG를 통해 Execution Plan이 만들어진 상태
-> 자원의 상황을 고려해서 최적의 코스로 수행
4. Spark 실행 구조 08
4. Spark 실행 구조 09
〮 드라이버
1. 사용자 프로그램 -> task
- Main()이 실행되는 프로세스
- SparkContext, RDD 생성
- Transformation, action 수행
- DAG -> 물리적 실행 계획으로 변환
2. Excutor에서의 task 스케줄링
- 항상 excutor들을 살펴보고 각 task를
데이터 위치에 기반해 적절한 위치에
서 실행될 수 있도록 함.
4. Spark 실행 구조 10
〮 익스큐터
- 작업들을 실행하여 결과를 드라이버에 반환
- 각 익스큐터 안에 존재하는 블록매니저를 통해 캐시하는 RDD를 저장
4. Spark 실행 구조 11
1. 사용자가 spark-submit을 통해 application 제출
2. Spark-submi이 드라이버 실행, main() 호출
3. 드라이버 -> 클러스터 매니저, 익스큐터를 위한 리소스 요청
4. 클러스터 매니저가 익스큐터들 실행
5. 드라이버가 실행되고 프로그램 내용에 따라 단위 작업으로 나누어 익
스큐터들에게 보냄.
6. 단위 작업들이 익스큐터에 의해 실행
7. Main()이 끝나거나 sparkcontext.stop() 호출되면 익스큐터들 중지되고
클러스터 매니저에 사용했던 자원 반환.
잠깐 12
〮 수행 중 메모리가 부족한 경우?
LRU정책으로 안쓰는 파티션 없앰
〮 수행 중 Fault가 났을 때 Recovery 비용?
Lineage가 애초에 용량이 작기때문에 부담이 없음
〮 wide dependecy의 경우 Recovery 비용?
재계산 비용이 disk i/o보다 비쌀수 있다.
Checkpoint 이용을 고려하자
-> read-only기 때문에 병렬로 async 돌리면 됨.
6. spark 구조 13
6. 기본 예제 14
6. wordcount 15
7. 스파크 SQL 16
〮 python, java, scala의 DataFrame 다룰 수 있음.
〮 다양한 구조적 포맷의 데이터 읽고 쓰기 가능. (JSON, Hive 테이블, Parquet)
〮 스파크 내부 또는 JDBC를 제공하는 툴을 써서 쿼리 날리기 가능
7. 스파크 SQL 17
8. 스파크 MLlib 18
〮 Java, Scala, Python, R 모두 지원
〮 일반적인 MR보다 100배 정도 빠름
〮 Mllib은 python의 scikit-learn에 기반
〮 RDD로 표현된 분산 데이터셋에서 다양한 알고리즘을 가져다 쓸 수 있도록 함
〮 Classification, Regression, Linear methods, Decision trees, Tree Ensembles
8. 스파크 MLlib 19
9. 스파크 streaming 20
〮 스트림을 쪼개어 RDD처럼 처리
〮 스트림 데이터에 실시간으로 map, reduce, filter, join같은 함수 적용 가능
9. 스파크 streaming 21
Localhost:7777 서버
Lines
DStream
errorLines
DStream
0~1초
데이터
1~2초
데이터
2~3초
데이터
3~4초
데이터
0~1초
데이터
1~2초
데이터
2~3초
데이터
3~4초
데이터
filter

More Related Content

PDF
cassandra overview & spark to cassandra
PPTX
분산저장시스템 개발에 대한 12가지 이야기
PDF
왜 Spark 와 infinispan 왜 같이 쓰지
PPT
구글의 공룡화
PPTX
Cassandra education material
PDF
Spark_Overview_qna
PPTX
이것이 레디스다.
PDF
하둡 (Hadoop) 및 관련기술 훑어보기
cassandra overview & spark to cassandra
분산저장시스템 개발에 대한 12가지 이야기
왜 Spark 와 infinispan 왜 같이 쓰지
구글의 공룡화
Cassandra education material
Spark_Overview_qna
이것이 레디스다.
하둡 (Hadoop) 및 관련기술 훑어보기

What's hot (20)

PDF
Cassandra 멘붕기 | Devon 2012
PDF
Spark은 왜 이렇게 유명해지고 있을까?
PDF
Redis edu 3
PDF
NoSQL 간단한 소개
PPTX
Spark 2 프로그래밍 3 장 클러스터 환경
PPTX
Apache spark 소개 및 실습
PDF
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
PDF
Redis on AWS
PPT
Redis Overview
PPTX
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
PDF
Redis basicandroadmap
PDF
주키퍼
PPTX
카산드라를 설치해서 테스트 해보자 with virtualbox
PDF
Redis trouble shooting
PDF
Cloudera session seoul - Spark bootcamp
PPT
Hadoop Introduction (1.0)
PDF
SPARK SQL
PDF
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
PPTX
No sql 이해 및 활용 공개용
PDF
Arcus
Cassandra 멘붕기 | Devon 2012
Spark은 왜 이렇게 유명해지고 있을까?
Redis edu 3
NoSQL 간단한 소개
Spark 2 프로그래밍 3 장 클러스터 환경
Apache spark 소개 및 실습
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
Redis on AWS
Redis Overview
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
Redis basicandroadmap
주키퍼
카산드라를 설치해서 테스트 해보자 with virtualbox
Redis trouble shooting
Cloudera session seoul - Spark bootcamp
Hadoop Introduction (1.0)
SPARK SQL
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
No sql 이해 및 활용 공개용
Arcus
Ad

Similar to Start spark (20)

PDF
Learning spark ch1-2
PDF
Apache Spark
PPTX
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
PPTX
What is spark
PDF
Cluster - spark
PDF
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
PPTX
Spark streaming tutorial
PPTX
Pyspark Demo1,Demo2 정리
PPTX
Spark machine learning & deep learning
PPTX
Spark sql
PDF
Spark로 알아보는 빅데이터 처리
PDF
Flamingo (FEA) Spark Designer
PDF
스사모 테크톡 - Apache Flink 둘러보기
PDF
Python & Spark
PPTX
2.apache spark 실습
PDF
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...
PDF
sparklyr을 활용한 R 분산 처리
PPT
Big Data Overview
PDF
[236] 카카오의데이터파이프라인 윤도영
PPTX
Hadoop설명
Learning spark ch1-2
Apache Spark
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
What is spark
Cluster - spark
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark streaming tutorial
Pyspark Demo1,Demo2 정리
Spark machine learning & deep learning
Spark sql
Spark로 알아보는 빅데이터 처리
Flamingo (FEA) Spark Designer
스사모 테크톡 - Apache Flink 둘러보기
Python & Spark
2.apache spark 실습
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...
sparklyr을 활용한 R 분산 처리
Big Data Overview
[236] 카카오의데이터파이프라인 윤도영
Hadoop설명
Ad

Start spark

  • 2. 1. 스파크란? 02 〮 오픈소스 클러스터 컴퓨팅 프레임워크 〮 Spark = MR + interactive query + streaming 〮 하둡 API를 사용하는 저장 시스템 지원 - HDFS, S3, Cassandra, Hive, Hbase 〮 In-Memory
  • 3. 2. Spark vs Hadoop 03 1. Disk I/O - iteration 작업 매 job마다 HDFS 접근 2. Hadoop + RAM - fault-tolerant X 3. Hadoop + RAM + fault-tolerant(Piccolo) - replicating : 하는동안 멈춰야 함… - checkpoint : disk... -> 그냥 느리다
  • 4. 2. RDD 04 〮 Resilient Distributed Dataset 〮 스토리지 -> RDD, RDD -> RDD 〮 Immutable, Read-Only - 어떻게 만들어졌는지 알면 다시 만들 수 있다. -> lineage에 기록 〮 DAG(Directed Acyclic Graph)로 표현
  • 6. 4. Narrow and Wide dependencies 06 〮 Narrow Dependencies - 작업이 한 노드에서(네트워크X) - 그 노드에서 복원가능 〮 Wide Dependencies - 노드간 셔플이 필요(네트워크O) - 부셔지면 복원이 가능하지만 비쌈
  • 7. 5. Lazy-execution and Fault-tolerant 07 〮 Transformation : RDD -> RDD, lineage만 기록 〮 Action : lineage에 쌓인 것들 수행 -> lazy-execution 〮 RDD 망가져도 lineage를 통해 복구 가능 -> fault-tolerant 〮 DAG를 통해 Execution Plan이 만들어진 상태 -> 자원의 상황을 고려해서 최적의 코스로 수행
  • 8. 4. Spark 실행 구조 08
  • 9. 4. Spark 실행 구조 09 〮 드라이버 1. 사용자 프로그램 -> task - Main()이 실행되는 프로세스 - SparkContext, RDD 생성 - Transformation, action 수행 - DAG -> 물리적 실행 계획으로 변환 2. Excutor에서의 task 스케줄링 - 항상 excutor들을 살펴보고 각 task를 데이터 위치에 기반해 적절한 위치에 서 실행될 수 있도록 함.
  • 10. 4. Spark 실행 구조 10 〮 익스큐터 - 작업들을 실행하여 결과를 드라이버에 반환 - 각 익스큐터 안에 존재하는 블록매니저를 통해 캐시하는 RDD를 저장
  • 11. 4. Spark 실행 구조 11 1. 사용자가 spark-submit을 통해 application 제출 2. Spark-submi이 드라이버 실행, main() 호출 3. 드라이버 -> 클러스터 매니저, 익스큐터를 위한 리소스 요청 4. 클러스터 매니저가 익스큐터들 실행 5. 드라이버가 실행되고 프로그램 내용에 따라 단위 작업으로 나누어 익 스큐터들에게 보냄. 6. 단위 작업들이 익스큐터에 의해 실행 7. Main()이 끝나거나 sparkcontext.stop() 호출되면 익스큐터들 중지되고 클러스터 매니저에 사용했던 자원 반환.
  • 12. 잠깐 12 〮 수행 중 메모리가 부족한 경우? LRU정책으로 안쓰는 파티션 없앰 〮 수행 중 Fault가 났을 때 Recovery 비용? Lineage가 애초에 용량이 작기때문에 부담이 없음 〮 wide dependecy의 경우 Recovery 비용? 재계산 비용이 disk i/o보다 비쌀수 있다. Checkpoint 이용을 고려하자 -> read-only기 때문에 병렬로 async 돌리면 됨.
  • 16. 7. 스파크 SQL 16 〮 python, java, scala의 DataFrame 다룰 수 있음. 〮 다양한 구조적 포맷의 데이터 읽고 쓰기 가능. (JSON, Hive 테이블, Parquet) 〮 스파크 내부 또는 JDBC를 제공하는 툴을 써서 쿼리 날리기 가능
  • 18. 8. 스파크 MLlib 18 〮 Java, Scala, Python, R 모두 지원 〮 일반적인 MR보다 100배 정도 빠름 〮 Mllib은 python의 scikit-learn에 기반 〮 RDD로 표현된 분산 데이터셋에서 다양한 알고리즘을 가져다 쓸 수 있도록 함 〮 Classification, Regression, Linear methods, Decision trees, Tree Ensembles
  • 20. 9. 스파크 streaming 20 〮 스트림을 쪼개어 RDD처럼 처리 〮 스트림 데이터에 실시간으로 map, reduce, filter, join같은 함수 적용 가능
  • 21. 9. 스파크 streaming 21 Localhost:7777 서버 Lines DStream errorLines DStream 0~1초 데이터 1~2초 데이터 2~3초 데이터 3~4초 데이터 0~1초 데이터 1~2초 데이터 2~3초 데이터 3~4초 데이터 filter