SlideShare uma empresa Scribd logo
1 de 21
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

Mais conteúdo relacionado

Mais procurados

Cassandra 멘붕기 | Devon 2012
Cassandra 멘붕기 | Devon 2012Cassandra 멘붕기 | Devon 2012
Cassandra 멘붕기 | Devon 2012Daum DNA
 
Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?KSLUG
 
NoSQL 간단한 소개
NoSQL 간단한 소개NoSQL 간단한 소개
NoSQL 간단한 소개Wonchang Song
 
Spark 2 프로그래밍 3 장 클러스터 환경
Spark 2 프로그래밍   3 장 클러스터 환경Spark 2 프로그래밍   3 장 클러스터 환경
Spark 2 프로그래밍 3 장 클러스터 환경hojung kang
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습동현 강
 
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arc
3.[d2 오픈세미나]분산시스템 개발 및 교훈 n base arcNAVER D2
 
Redis Overview
Redis OverviewRedis Overview
Redis Overviewkalzas
 
Redis basicandroadmap
Redis basicandroadmapRedis basicandroadmap
Redis basicandroadmapDaeMyung Kang
 
카산드라를 설치해서 테스트 해보자 with virtualbox
카산드라를 설치해서 테스트 해보자 with virtualbox카산드라를 설치해서 테스트 해보자 with virtualbox
카산드라를 설치해서 테스트 해보자 with virtualbox떠리 이
 
Redis trouble shooting
Redis trouble shootingRedis trouble shooting
Redis trouble shootingDaeMyung Kang
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampSang-bae Lim
 
Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Hadoop Introduction (1.0)
Hadoop Introduction (1.0)Keeyong Han
 
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Yongho Ha
 
No sql 이해 및 활용 공개용
No sql 이해 및 활용 공개용No sql 이해 및 활용 공개용
No sql 이해 및 활용 공개용YOUNGGYU CHUN
 

Mais procurados (20)

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

Semelhante a Start spark

Osc4.x installation v1-upload
Osc4.x installation v1-uploadOsc4.x installation v1-upload
Osc4.x installation v1-uploadDong-Hwa jung
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106SangHoon Lee
 
ARCUS offline meeting 2015. 05. 20 1회
ARCUS offline meeting 2015. 05. 20 1회ARCUS offline meeting 2015. 05. 20 1회
ARCUS offline meeting 2015. 05. 20 1회JaM2in
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)SANG WON PARK
 
DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit) DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit) ymtech
 
Pyspark Demo1,Demo2 정리
Pyspark Demo1,Demo2 정리Pyspark Demo1,Demo2 정리
Pyspark Demo1,Demo2 정리민기 박
 
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9하둡완벽가이드 Ch9
하둡완벽가이드 Ch9HyeonSeok Choi
 
MSA와 infra
MSA와 infraMSA와 infra
MSA와 infraJe Hun Kim
 
AWS EMR Cost optimization
AWS EMR Cost optimizationAWS EMR Cost optimization
AWS EMR Cost optimizationSANG WON PARK
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)Ildoo Kim
 
서버인프라를지탱하는기술3_2_3
서버인프라를지탱하는기술3_2_3서버인프라를지탱하는기술3_2_3
서버인프라를지탱하는기술3_2_3HyeonSeok Choi
 
2node cluster
2node cluster2node cluster
2node clustersprdd
 
2node cluster
2node cluster2node cluster
2node clustersprdd
 

Semelhante a Start spark (20)

Osc4.x installation v1-upload
Osc4.x installation v1-uploadOsc4.x installation v1-upload
Osc4.x installation v1-upload
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
 
Apache Spark
Apache SparkApache Spark
Apache Spark
 
What is spark
What is sparkWhat is spark
What is spark
 
ARCUS offline meeting 2015. 05. 20 1회
ARCUS offline meeting 2015. 05. 20 1회ARCUS offline meeting 2015. 05. 20 1회
ARCUS offline meeting 2015. 05. 20 1회
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
OLAP for Big Data (Druid vs Apache Kylin vs Apache Lens)
 
DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit) DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit)
 
DPDK
DPDKDPDK
DPDK
 
Pyspark Demo1,Demo2 정리
Pyspark Demo1,Demo2 정리Pyspark Demo1,Demo2 정리
Pyspark Demo1,Demo2 정리
 
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9하둡완벽가이드 Ch9
하둡완벽가이드 Ch9
 
MSA와 infra
MSA와 infraMSA와 infra
MSA와 infra
 
AWS EMR Cost optimization
AWS EMR Cost optimizationAWS EMR Cost optimization
AWS EMR Cost optimization
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
NoSQL
NoSQLNoSQL
NoSQL
 
Redis acc 2015
Redis acc 2015Redis acc 2015
Redis acc 2015
 
Kubernetes
Kubernetes Kubernetes
Kubernetes
 
서버인프라를지탱하는기술3_2_3
서버인프라를지탱하는기술3_2_3서버인프라를지탱하는기술3_2_3
서버인프라를지탱하는기술3_2_3
 
2node cluster
2node cluster2node cluster
2node cluster
 
2node cluster
2node cluster2node cluster
2node cluster
 

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