SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Chapter8. Tuning and
Debugging Spark
아꿈사
overview
- SparkConf로 스파크 설정하기
- 실행을 구성하는 것 : Jobs, Tasks and Stages
- 정보 찾기
- 성능에 관한 핵심 고려 사항
SparkConf
- Spark application의 설정을 변경할 수 있음
- key, value값으로 구성
- 아래의 방법으로 설정 가능
- SparkConf 오브젝트로 구성
- spark-submit설정
SparkConf오브젝트로 설정
val conf = new SparkConf()
conf.set("spark.app.name", "My Spark App")
conf.set("spark.master", "local[4]")
conf.set("spark.ui.port", "36000")
val sc = new SparkContext(conf)
spark-submit설정
$ bin/spark-submit 
--class com.example.MyApp 
--master local[4] 
--name "My Spark App" 
--conf spark.ui.port=36000 
myApp.jar
spark-submit설정
$ bin/spark-submit 
--class com.example.MyApp 
--properties-file my-config.conf 
myApp.jar
실행을 구성하는 것 : Jobs, Tasks, Stages
- RDD시각화
RDD가 자신이 어떤 타입의 관계를 갖고 있는지 보여준다.
각 함수들이 내부적으로 어떤 일을 하는지 알 수 있다.
RDD시각화
scala> input.toDebugString
res0: String =
(2) MapPartitionsRDD[1] at textFile at <console>:21 []
| input.txt HadoopRDD[0] at textFile at <console>:21 []
scala> counts.toDebugString
res1: String =
(2) ShuffledRDD[5] at reduceByKey at <console>:25 []
+-(2) MapPartitionsRDD[4] at map at <console>:25 []
| MapPartitionsRDD[3] at map at <console>:23 []
| MapPartitionsRDD[2] at filter at <console>:23 []
| MapPartitionsRDD[1] at textFile at <console>:21 []
| input.txt HadoopRDD[0] at textFile at <console>:21 []
RDD 모으기
- collect()함수를 사용해 명시적으로 액션을 실행
- RDD의 모든 파티션이 실체화, 드라이버 프로그램으로 전송
- 파이프라이닝 : 데이터 이동 없이, 하나의 부모로부터 연산가능 할 때,
물리단계에서 합쳐질 수 있음
- 건너뛰기(short-circuit) : 캐싱 작업 건너 뛰기
scala> counts.collect()
res0: Array[(String, Int)] = Array((She,1), (�Perhaps,1), (There,1), (�Papa?,1), (Elsewhere,,1), (As,1), (Fascinus,3), (�Do,
1), (�Good,1), (With,2), (His,2) …..
파이프라이닝
정보 찾기
- 스파크 웹 UI
웹을 통해서 스파크 어플리케이션 성능을 모니터링 지원
Jobs : 진행 상황과 작업 단계, 테스크 등에 대한 수치
Storage : 영속화된 RDD의 정보
Executors : 어플리케이션에 존재하는 익스큐터 목록
익스큐터가 스고있는 저장 장치의 용량, 스레드덤프 기능 제공
성능에 관한 핵심 고려 사항
- 병렬화 수준
목적 : 스파크의 RDD의 병렬화 수준을 조절하여
너무 작으면 리소스가 놀게 되고, 너무 많으면 오버헤드 발생
- coalesc() : 병렬화 정도를 인자로 줄 수 있다.
- repartition() : 무작위로 섞어 다시 나눠준다
성능에 관한 핵심 고려 사항
- 직렬화 포맷
스파크는 네트워크로 데이터를 전송하거나 디스크에 쓸 때, 객체들을 직렬화 시킴
자바의 내장된 직렬화를 사용
서드파티 Kyro가 더 나은 성능을 제공
메모리 관리
- 메모리를 여러 가지 목적으로 사용된다. 목적에 따라 비율 조절 필요
RDD저장용(60%)
셔플 및 집합 연산 버퍼(20%)
사용자 코드(20%)
- 캐싱 동작에 따른 옵션 지정 가능
- MEMORY_AND_DISK : 메모리, 디스크 저장
- MEMORY_AND_DISK_SER : 모메뢰, 디스크 저장(직렬화된 상태)

Weitere ähnliche Inhalte

Was ist angesagt?

Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습동현 강
 
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지위키북스
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습동현 강
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부Jinho Yoo
 
Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?KSLUG
 
PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기찬희 이
 
Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리Jeong-gyu Kim
 
Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Donam Kim
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106SangHoon Lee
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 
Fundamental of ELK Stack
Fundamental of ELK StackFundamental of ELK Stack
Fundamental of ELK Stack주표 홍
 
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축Juhong Park
 
Zeppelin notebook 만들기
Zeppelin notebook 만들기Zeppelin notebook 만들기
Zeppelin notebook 만들기Soo-Kyung Choi
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처Sunggon Song
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문SeungHyun Eom
 

Was ist angesagt? (20)

Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습
 
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
빅데이터 분석을 위한 스파크 2 프로그래밍 : 대용량 데이터 처리부터 머신러닝까지
 
SPARK SQL
SPARK SQLSPARK SQL
SPARK SQL
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부
 
Spark sql
Spark sqlSpark sql
Spark sql
 
Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?
 
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
 
PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기
 
Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리
 
Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
Fundamental of ELK Stack
Fundamental of ELK StackFundamental of ELK Stack
Fundamental of ELK Stack
 
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
[NDC 2018] Spark, Flintrock, Airflow 로 구현하는 탄력적이고 유연한 데이터 분산처리 자동화 인프라 구축
 
Zeppelin notebook 만들기
Zeppelin notebook 만들기Zeppelin notebook 만들기
Zeppelin notebook 만들기
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처
 
Hadoop io part2
Hadoop io part2Hadoop io part2
Hadoop io part2
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문
 

Andere mochten auch

[D2 COMMUNITY] Spark User Group - 머신러닝 인공지능 기법
[D2 COMMUNITY] Spark User Group - 머신러닝 인공지능 기법[D2 COMMUNITY] Spark User Group - 머신러닝 인공지능 기법
[D2 COMMUNITY] Spark User Group - 머신러닝 인공지능 기법NAVER D2
 
제 5회 Lisp 세미나 - 클로저 개발팀을 위한 지속적인 통합
제 5회 Lisp 세미나 - 클로저 개발팀을 위한 지속적인 통합제 5회 Lisp 세미나 - 클로저 개발팀을 위한 지속적인 통합
제 5회 Lisp 세미나 - 클로저 개발팀을 위한 지속적인 통합NAVER D2
 
제 5회 Lisp 세미나 - Graphics Programming in Clojure
제 5회 Lisp 세미나 - Graphics Programming in Clojure제 5회 Lisp 세미나 - Graphics Programming in Clojure
제 5회 Lisp 세미나 - Graphics Programming in ClojureNAVER D2
 
core.logic (Clojure)
core.logic (Clojure)core.logic (Clojure)
core.logic (Clojure)Seonho Kim
 
동시성 프로그래밍 하기 좋은 Clojure
동시성 프로그래밍 하기 좋은 Clojure동시성 프로그래밍 하기 좋은 Clojure
동시성 프로그래밍 하기 좋은 ClojureEunmin Kim
 
HungryOsori 2016년 1학기 최종 발표
HungryOsori 2016년 1학기 최종 발표HungryOsori 2016년 1학기 최종 발표
HungryOsori 2016년 1학기 최종 발표Osori Hanyang
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Jinsoo Jung
 
Slipp clojure-1212
Slipp clojure-1212Slipp clojure-1212
Slipp clojure-1212완수 양
 
영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA경원 이
 
Scala로의 산책
Scala로의 산책Scala로의 산책
Scala로의 산책Youmi Bae
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Javajigi Jaesung
 
[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)
[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)
[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)NAVER D2
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference API
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference API[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference API
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference APINAVER D2
 
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & RankingIan Choi
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttpNAVER D2
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http RequestNAVER D2
 
Microsoft Azure 클라우드 에서 Elasticsearch 서비스 사용 - 이건복 님
Microsoft Azure 클라우드 에서 Elasticsearch 서비스 사용 - 이건복 님Microsoft Azure 클라우드 에서 Elasticsearch 서비스 사용 - 이건복 님
Microsoft Azure 클라우드 에서 Elasticsearch 서비스 사용 - 이건복 님NAVER D2
 
이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님
이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님
이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님NAVER D2
 

Andere mochten auch (20)

[D2 COMMUNITY] Spark User Group - 머신러닝 인공지능 기법
[D2 COMMUNITY] Spark User Group - 머신러닝 인공지능 기법[D2 COMMUNITY] Spark User Group - 머신러닝 인공지능 기법
[D2 COMMUNITY] Spark User Group - 머신러닝 인공지능 기법
 
Re frame
Re frameRe frame
Re frame
 
제 5회 Lisp 세미나 - 클로저 개발팀을 위한 지속적인 통합
제 5회 Lisp 세미나 - 클로저 개발팀을 위한 지속적인 통합제 5회 Lisp 세미나 - 클로저 개발팀을 위한 지속적인 통합
제 5회 Lisp 세미나 - 클로저 개발팀을 위한 지속적인 통합
 
제 5회 Lisp 세미나 - Graphics Programming in Clojure
제 5회 Lisp 세미나 - Graphics Programming in Clojure제 5회 Lisp 세미나 - Graphics Programming in Clojure
제 5회 Lisp 세미나 - Graphics Programming in Clojure
 
core.logic (Clojure)
core.logic (Clojure)core.logic (Clojure)
core.logic (Clojure)
 
동시성 프로그래밍 하기 좋은 Clojure
동시성 프로그래밍 하기 좋은 Clojure동시성 프로그래밍 하기 좋은 Clojure
동시성 프로그래밍 하기 좋은 Clojure
 
HungryOsori 2016년 1학기 최종 발표
HungryOsori 2016년 1학기 최종 발표HungryOsori 2016년 1학기 최종 발표
HungryOsori 2016년 1학기 최종 발표
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212
 
Slipp clojure-1212
Slipp clojure-1212Slipp clojure-1212
Slipp clojure-1212
 
영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA영속성 컨텍스트로 보는 JPA
영속성 컨텍스트로 보는 JPA
 
Scala로의 산책
Scala로의 산책Scala로의 산책
Scala로의 산책
 
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
 
Slipp 발표 - GO
Slipp 발표 - GOSlipp 발표 - GO
Slipp 발표 - GO
 
[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)
[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)
[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference API
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference API[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference API
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference API
 
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
 
Microsoft Azure 클라우드 에서 Elasticsearch 서비스 사용 - 이건복 님
Microsoft Azure 클라우드 에서 Elasticsearch 서비스 사용 - 이건복 님Microsoft Azure 클라우드 에서 Elasticsearch 서비스 사용 - 이건복 님
Microsoft Azure 클라우드 에서 Elasticsearch 서비스 사용 - 이건복 님
 
이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님
이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님
이커머스 스타트업에서 검색 인프라 구축하기 - 정호욱님
 

Ähnlich wie learning spark - Chatper8. Tuning and Debugging

How to use apache spark (based on the java example)
How to use apache spark (based on the java example)How to use apache spark (based on the java example)
How to use apache spark (based on the java example)월간 IT 슬라이드
 
Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기SangWoo Kim
 
Ryu with OpenFlow 1.3, REST API
Ryu with OpenFlow 1.3, REST APIRyu with OpenFlow 1.3, REST API
Ryu with OpenFlow 1.3, REST APIjieun kim
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampSang-bae Lim
 
Data platform data pipeline(Airflow, Kubernetes)
Data platform data pipeline(Airflow, Kubernetes)Data platform data pipeline(Airflow, Kubernetes)
Data platform data pipeline(Airflow, Kubernetes)창언 정
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영NAVER D2
 
spark database Service
spark database Servicespark database Service
spark database Service창언 정
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)EunChul Shin
 
Kubernetes & helm 활용
Kubernetes & helm 활용Kubernetes & helm 활용
Kubernetes & helm 활용SK Telecom
 
Mean 스택을 사용한 IoT 개발
Mean 스택을 사용한 IoT 개발Mean 스택을 사용한 IoT 개발
Mean 스택을 사용한 IoT 개발Jay Park
 
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
 Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018 Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018Amazon Web Services Korea
 
Terraform을 이용한 Infrastructure as Code 실전 구성하기
Terraform을 이용한 Infrastructure as Code 실전 구성하기Terraform을 이용한 Infrastructure as Code 실전 구성하기
Terraform을 이용한 Infrastructure as Code 실전 구성하기JeongHun Byeon
 
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
 
19. Application - Spark Streaming 1
19. Application - Spark Streaming 119. Application - Spark Streaming 1
19. Application - Spark Streaming 1merry7
 
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트::  AWS Summit Online Ko...EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트::  AWS Summit Online Ko...
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...Amazon Web Services Korea
 
02.실행환경 실습교재(데이터처리)
02.실행환경 실습교재(데이터처리)02.실행환경 실습교재(데이터처리)
02.실행환경 실습교재(데이터처리)Hankyo
 

Ähnlich wie learning spark - Chatper8. Tuning and Debugging (20)

How to use apache spark (based on the java example)
How to use apache spark (based on the java example)How to use apache spark (based on the java example)
How to use apache spark (based on the java example)
 
Spark config
Spark configSpark config
Spark config
 
Apache Spark
Apache SparkApache Spark
Apache Spark
 
One-day-codelab
One-day-codelabOne-day-codelab
One-day-codelab
 
Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기
 
Ryu with OpenFlow 1.3, REST API
Ryu with OpenFlow 1.3, REST APIRyu with OpenFlow 1.3, REST API
Ryu with OpenFlow 1.3, REST API
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcamp
 
Data platform data pipeline(Airflow, Kubernetes)
Data platform data pipeline(Airflow, Kubernetes)Data platform data pipeline(Airflow, Kubernetes)
Data platform data pipeline(Airflow, Kubernetes)
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영
 
spark database Service
spark database Servicespark database Service
spark database Service
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
 
Kubernetes & helm 활용
Kubernetes & helm 활용Kubernetes & helm 활용
Kubernetes & helm 활용
 
Mean 스택을 사용한 IoT 개발
Mean 스택을 사용한 IoT 개발Mean 스택을 사용한 IoT 개발
Mean 스택을 사용한 IoT 개발
 
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
 Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018 Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
Terraform을 이용한 Infrastructure as Code 실전 구성하기 :: 변정훈::AWS Summit Seoul 2018
 
Terraform을 이용한 Infrastructure as Code 실전 구성하기
Terraform을 이용한 Infrastructure as Code 실전 구성하기Terraform을 이용한 Infrastructure as Code 실전 구성하기
Terraform을 이용한 Infrastructure as Code 실전 구성하기
 
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회
 
What is spark
What is sparkWhat is spark
What is spark
 
19. Application - Spark Streaming 1
19. Application - Spark Streaming 119. Application - Spark Streaming 1
19. Application - Spark Streaming 1
 
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트::  AWS Summit Online Ko...EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트::  AWS Summit Online Ko...
EMR 플랫폼 기반의 Spark 워크로드 실행 최적화 방안 - 정세웅, AWS 솔루션즈 아키텍트:: AWS Summit Online Ko...
 
02.실행환경 실습교재(데이터처리)
02.실행환경 실습교재(데이터처리)02.실행환경 실습교재(데이터처리)
02.실행환경 실습교재(데이터처리)
 

Mehr von Mungyu Choi

HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)
HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)
HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)Mungyu Choi
 
HTTP 완벽가이드 - ch5. web server
HTTP 완벽가이드 - ch5. web serverHTTP 완벽가이드 - ch5. web server
HTTP 완벽가이드 - ch5. web serverMungyu Choi
 
Elasticsearch server Chapter5
Elasticsearch server Chapter5Elasticsearch server Chapter5
Elasticsearch server Chapter5Mungyu Choi
 
JVM과 톰캣 튜닝
JVM과 톰캣 튜닝JVM과 톰캣 튜닝
JVM과 톰캣 튜닝Mungyu Choi
 
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝Mungyu Choi
 
Nodejs 트래픽 라우팅, 파일 서비스, 미들웨어
Nodejs 트래픽 라우팅, 파일 서비스, 미들웨어Nodejs 트래픽 라우팅, 파일 서비스, 미들웨어
Nodejs 트래픽 라우팅, 파일 서비스, 미들웨어Mungyu Choi
 
nodejs websocket & SOCKET.IO
nodejs websocket & SOCKET.IOnodejs websocket & SOCKET.IO
nodejs websocket & SOCKET.IOMungyu Choi
 
정렬(버블정렬,선택정렬,삽입정렬)
정렬(버블정렬,선택정렬,삽입정렬)정렬(버블정렬,선택정렬,삽입정렬)
정렬(버블정렬,선택정렬,삽입정렬)Mungyu Choi
 
c++ API디자인 ch9. 발표자료
c++ API디자인 ch9. 발표자료c++ API디자인 ch9. 발표자료
c++ API디자인 ch9. 발표자료Mungyu Choi
 
Ch11. server infra
Ch11. server infraCh11. server infra
Ch11. server infraMungyu Choi
 
대규모 서비스를 지탱하는 기술 ch6
대규모 서비스를 지탱하는 기술 ch6대규모 서비스를 지탱하는 기술 ch6
대규모 서비스를 지탱하는 기술 ch6Mungyu Choi
 

Mehr von Mungyu Choi (16)

HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)
HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)
HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)
 
HTTP 완벽가이드 - ch5. web server
HTTP 완벽가이드 - ch5. web serverHTTP 완벽가이드 - ch5. web server
HTTP 완벽가이드 - ch5. web server
 
Elasticsearch server Chapter5
Elasticsearch server Chapter5Elasticsearch server Chapter5
Elasticsearch server Chapter5
 
JVM과 톰캣 튜닝
JVM과 톰캣 튜닝JVM과 톰캣 튜닝
JVM과 톰캣 튜닝
 
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
 
Nodejs 트래픽 라우팅, 파일 서비스, 미들웨어
Nodejs 트래픽 라우팅, 파일 서비스, 미들웨어Nodejs 트래픽 라우팅, 파일 서비스, 미들웨어
Nodejs 트래픽 라우팅, 파일 서비스, 미들웨어
 
nodejs websocket & SOCKET.IO
nodejs websocket & SOCKET.IOnodejs websocket & SOCKET.IO
nodejs websocket & SOCKET.IO
 
정렬(버블정렬,선택정렬,삽입정렬)
정렬(버블정렬,선택정렬,삽입정렬)정렬(버블정렬,선택정렬,삽입정렬)
정렬(버블정렬,선택정렬,삽입정렬)
 
c++ API디자인 ch9. 발표자료
c++ API디자인 ch9. 발표자료c++ API디자인 ch9. 발표자료
c++ API디자인 ch9. 발표자료
 
b+tree
b+treeb+tree
b+tree
 
Hdfs
HdfsHdfs
Hdfs
 
hadoop ch1
hadoop ch1hadoop ch1
hadoop ch1
 
A tour of go
A tour of goA tour of go
A tour of go
 
Ch11. server infra
Ch11. server infraCh11. server infra
Ch11. server infra
 
대규모 서비스를 지탱하는 기술 ch6
대규모 서비스를 지탱하는 기술 ch6대규모 서비스를 지탱하는 기술 ch6
대규모 서비스를 지탱하는 기술 ch6
 
Chap4_2
Chap4_2Chap4_2
Chap4_2
 

learning spark - Chatper8. Tuning and Debugging

  • 2. overview - SparkConf로 스파크 설정하기 - 실행을 구성하는 것 : Jobs, Tasks and Stages - 정보 찾기 - 성능에 관한 핵심 고려 사항
  • 3. SparkConf - Spark application의 설정을 변경할 수 있음 - key, value값으로 구성 - 아래의 방법으로 설정 가능 - SparkConf 오브젝트로 구성 - spark-submit설정
  • 4. SparkConf오브젝트로 설정 val conf = new SparkConf() conf.set("spark.app.name", "My Spark App") conf.set("spark.master", "local[4]") conf.set("spark.ui.port", "36000") val sc = new SparkContext(conf)
  • 5. spark-submit설정 $ bin/spark-submit --class com.example.MyApp --master local[4] --name "My Spark App" --conf spark.ui.port=36000 myApp.jar
  • 6. spark-submit설정 $ bin/spark-submit --class com.example.MyApp --properties-file my-config.conf myApp.jar
  • 7. 실행을 구성하는 것 : Jobs, Tasks, Stages - RDD시각화 RDD가 자신이 어떤 타입의 관계를 갖고 있는지 보여준다. 각 함수들이 내부적으로 어떤 일을 하는지 알 수 있다.
  • 8. RDD시각화 scala> input.toDebugString res0: String = (2) MapPartitionsRDD[1] at textFile at <console>:21 [] | input.txt HadoopRDD[0] at textFile at <console>:21 [] scala> counts.toDebugString res1: String = (2) ShuffledRDD[5] at reduceByKey at <console>:25 [] +-(2) MapPartitionsRDD[4] at map at <console>:25 [] | MapPartitionsRDD[3] at map at <console>:23 [] | MapPartitionsRDD[2] at filter at <console>:23 [] | MapPartitionsRDD[1] at textFile at <console>:21 [] | input.txt HadoopRDD[0] at textFile at <console>:21 []
  • 9. RDD 모으기 - collect()함수를 사용해 명시적으로 액션을 실행 - RDD의 모든 파티션이 실체화, 드라이버 프로그램으로 전송 - 파이프라이닝 : 데이터 이동 없이, 하나의 부모로부터 연산가능 할 때, 물리단계에서 합쳐질 수 있음 - 건너뛰기(short-circuit) : 캐싱 작업 건너 뛰기 scala> counts.collect() res0: Array[(String, Int)] = Array((She,1), (�Perhaps,1), (There,1), (�Papa?,1), (Elsewhere,,1), (As,1), (Fascinus,3), (�Do, 1), (�Good,1), (With,2), (His,2) …..
  • 11. 정보 찾기 - 스파크 웹 UI 웹을 통해서 스파크 어플리케이션 성능을 모니터링 지원 Jobs : 진행 상황과 작업 단계, 테스크 등에 대한 수치 Storage : 영속화된 RDD의 정보 Executors : 어플리케이션에 존재하는 익스큐터 목록 익스큐터가 스고있는 저장 장치의 용량, 스레드덤프 기능 제공
  • 12. 성능에 관한 핵심 고려 사항 - 병렬화 수준 목적 : 스파크의 RDD의 병렬화 수준을 조절하여 너무 작으면 리소스가 놀게 되고, 너무 많으면 오버헤드 발생 - coalesc() : 병렬화 정도를 인자로 줄 수 있다. - repartition() : 무작위로 섞어 다시 나눠준다
  • 13. 성능에 관한 핵심 고려 사항 - 직렬화 포맷 스파크는 네트워크로 데이터를 전송하거나 디스크에 쓸 때, 객체들을 직렬화 시킴 자바의 내장된 직렬화를 사용 서드파티 Kyro가 더 나은 성능을 제공
  • 14. 메모리 관리 - 메모리를 여러 가지 목적으로 사용된다. 목적에 따라 비율 조절 필요 RDD저장용(60%) 셔플 및 집합 연산 버퍼(20%) 사용자 코드(20%) - 캐싱 동작에 따른 옵션 지정 가능 - MEMORY_AND_DISK : 메모리, 디스크 저장 - MEMORY_AND_DISK_SER : 모메뢰, 디스크 저장(직렬화된 상태)