SlideShare a Scribd company logo
스파크설정
스파크설정
클러스터운영, 어플리케이션실행에따라다양한설정값을제공
어플리케이션단위로설정(Spark properties)
각 서버단위로설정(Environment variables)
Spark Properties
https://spark.apache.org/docs/latest/configuration.html
Dynamically Loading Spark Properties
Viewing Spark Properties
Available Properties
Spark Properties
개별어플리케이션실행과 관련된설정값들을정의
SparkConf 클래스를사용하여등록
get, set 함수를제공
프로그램이실행되는시점에동적으로필요한값을설정할수없을까?
(익스큐터의메모리설정이나코어수할당과 관련된부분)
val conf = new SparkConf().setMaster("yarn-client").setAppName(
val sc = new SparkContext(conf)
Dynamically Loading Spark Properties
spark‑shell 또는spark‑submit 스크립트실행시,
명령행옵션을통해설정값을지정
어플리케이션을실행할때마다원하는설정값을지정가능,
(하나의어플리케이션을다양한클러스터환경에서실행하는경우)
spark-shell --master yarn --num-excutors 8
--executor-cores 2 --executor-memory 2g
--driver-memory 10g --conf spark.ui.port=4042
Dynamically Loading Spark Properties
./bin/spark-submit 
--class <main-class> 
--master <master-url> 
--deploy-mode <deploy-mode> 
--conf <key>=<value> 
... # other options
<application-jar> 
[application-arguments]
Dynamically Loading Spark Properties
설정정보가 담긴 파일을사용하는방법
 /$SPARK_HOME/conf/spark-defaults.conf 
spark.master spark://master:7077
spark.eventLog.enabled true
spark.driver.memory 5g
spark.eventLog.enabled true
Dynamically Loading Spark Properties
$ aws emr add-steps
--cluster-id $CLUSTERID,
--steps Name=$JOBNAME,
Jar=$JARFILE,
Args=[ /usr/lib/spark/bin/spark-submit,
--deploy-mode,client,
--properties-file,/etc/spark/conf/spark-defaults.conf,
--conf,spark.yarn.executor.memoryOverhead=2048,
--conf,spark.executor.memory=4g,
--packages,$SPARK_PACKAGES
],
ActionOnFailure=${ACTION_ON_FAIL}'
Application Properties
 spark.app.name 
 spark.driver.cores 
 spark.driver.maxResultSize 
 spark.driver.memory 
 spark.executor.memory 
 spark.master 
 spark.submit.deployMode 
Runtime Environment
 spark.driver.extraClassPath 
 spark.executor.extraClassPath 
 spark.jars, spark.files 
 spark.jars.packages 
Etc
 Shuffle Behavior : 셔플관련설정
 Spark UI : 스파크UI 관련설정
 Compression and Serialization : 압축및직렬화
 Memory Management : 메모리관련설정
 Networking, Scheduling : 네트워크, 스케줄링관련설정
 Dynamic Allocation : 동적자원할당관련설정
 Security, TLS / SSL : 보안, 암호화관련설정
 Spark Streaming, SparkR, GraphX 관련설정
Spark Properties
정리: 등록된설정정보는최종적으로합쳐져서반영
만약동일한속성이두가지이상의방법으로등록됐다면?
SparkConf로등록
spark‑submit 명령행매개변수
spark‑defaults.conf 파일
위와같은우선순위로반영
Spark UI, Environment
최종적으로반영된설정값이어떤것인지확인
환경 변수
각 서버단위로적용되어야하는환경 정보는
서버의환경변수를이용해등록할수있음 spark-env.sh 
YARN에서클러스터모드로실행할경우,
 spark-defaults.conf 파일의spark.yarn.appMasterEnv 이용
 JAVA_HOME 
 PYSPARK_PYTHON 
 PYSPARK_DRIVER_PYTHON 
 SPARK_LOCAL_IP 
/conf/spark‑env.sh
로깅 설정
Spark은로깅 프레임워크로log4j를사용
로깅 레벨을변경하고 싶다면,  /conf/log4j.properties 
자원스케줄링
https://spark.apache.org/docs/latest/job‑scheduling.html
클러스터의자원을적절히분배해서사용하는방법
하나의클러스터에서여러작업이실행되는경우2가지
1. 서로다른어플리케이션이동시에실행되는경우
2. 하나의어플리케이션에서여러개의스레드를이용해
다수의잡을동시에실행하는경우
고정자원할당방식(static resource allocation)
어플리케이션단위로고정된자원을할당
실행되는시점부터종료되는시점까지자원을점유하고 사용
Standalone, YARN, Fine‑grained 모드일때적용
https://spark.apache.org/docs/latest/running‑on‑
mesos.html#fine‑grained‑deprecated
동적자원할당방식(dynamic resource allocation)
실행상황에따라수시로할당량을조정
Spark 1.2 버전부터등장
https://www.youtube.com/watch?v=oqWDeC1zmQw
Graceful Decommission of Executors (p.243)
https://spark.apache.org/docs/latest/job‑scheduling.html#graceful‑
decommission‑of‑executors
동적자원할당모드에서는어플리케이션이실행되고 있는도중에익스큐터가
스케줄러에의해삭제될수있다. 따라서, 별도의셔플서비스를구동시킬것
파이션데이터에대해Mapper 수행후결과를파일에기록해놓으면,
Reducer가 실행결과를네트워크를통해읽어가는데, 이때Excutor가 삭제
되면해당생성해놓은데이터도함께삭제(셔플데이터유실)
어플리케이션간의자원할당방식
어플리케이션이입력데이터를읽고 정해진순서에따라
연산수행후결과를계산하고 종료되는경우,
사전에필요한자원을계산해서할당(Static)
어플리케이션이장시간 동작하면서외부이벤트가 있을때만
작업을처리하는형태로동작하는경우,
외부이벤트를대기하는시간 동안은자원낭비가 발생(Dynamic)
단일어플리케이션의자원스케줄링
SparkContext는기본적으로멀티스레드방식을지원
잡의실행은FIFO 방식, 먼저시작되는작업이끝날때까지대기
FIFO Scheduler / FAIR Scheduler
FAIR 방식으로변경하면, 모든잡이번갈아가면서골고루자원을사용
FIFO Scheduler
FAIR Scheduler
Pool
중요한작업, 덜중요한작업의우선순위를조정해야하는경우
풀마다스케줄링방식, 우선순위등을다르게 설정가능
여러사용자를그룹으로묶어서자원을할당
각 그룹별로작업을분리해서관리가능(정기적, 일시적인작업)
Pool
<allocations>
<pool name="pool1">
<schedulingMode>FAIR</schedulingMode>
<weight>1</weight>
<minShare>2</minShare>
</pool>
<pool name="pool2">
<schedulingMode>FIFO</schedulingMode>
<weight>2</weight>
<minShare>3</minShare>
</pool>
</allocations>
weight는다른풀과의상대적인크기를의미
minShare는최소한의CPU 코어수를의미
END

More Related Content

What's hot

H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
KTH
 

What's hot (20)

2020.02.06 우리는 왜 glue를 버렸나?
2020.02.06 우리는 왜 glue를 버렸나?2020.02.06 우리는 왜 glue를 버렸나?
2020.02.06 우리는 왜 glue를 버렸나?
 
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
H3 2011 클라우드 컴퓨팅 AWS 글로벌 서비스 구축을 위한 선택
 
AWS re:Invent 2017
AWS re:Invent 2017AWS re:Invent 2017
AWS re:Invent 2017
 
Blox — Docker 클러스터링에 ECS만으로는 부족하셨다고요?
Blox — Docker 클러스터링에 ECS만으로는 부족하셨다고요?Blox — Docker 클러스터링에 ECS만으로는 부족하셨다고요?
Blox — Docker 클러스터링에 ECS만으로는 부족하셨다고요?
 
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
 
Serverless Architecture - 김현민
Serverless Architecture - 김현민Serverless Architecture - 김현민
Serverless Architecture - 김현민
 
내 주변 작업하기 좋은 카페 찾아주는 웹앱 "작업공간" - 백엔드 아키텍처
내 주변 작업하기 좋은 카페 찾아주는 웹앱 "작업공간" - 백엔드 아키텍처내 주변 작업하기 좋은 카페 찾아주는 웹앱 "작업공간" - 백엔드 아키텍처
내 주변 작업하기 좋은 카페 찾아주는 웹앱 "작업공간" - 백엔드 아키텍처
 
AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집
AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집
AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집
 
[자바카페] Amazon Elastic Beanstalk 소개 (2017)
[자바카페] Amazon Elastic Beanstalk 소개 (2017)[자바카페] Amazon Elastic Beanstalk 소개 (2017)
[자바카페] Amazon Elastic Beanstalk 소개 (2017)
 
EKS workshop 살펴보기
EKS workshop 살펴보기EKS workshop 살펴보기
EKS workshop 살펴보기
 
Gaming on AWS - 7. AWS를 통한 기기별 테스트 – AWS Device Farm 소개 및 시연
Gaming on AWS - 7. AWS를 통한 기기별 테스트 – AWS Device Farm 소개 및 시연Gaming on AWS - 7. AWS를 통한 기기별 테스트 – AWS Device Farm 소개 및 시연
Gaming on AWS - 7. AWS를 통한 기기별 테스트 – AWS Device Farm 소개 및 시연
 
내 입맞에 맞는 프로그래밍 언어로 Lambda 함수 만들기 :: 정창훈 - AWS Community Day 2019
내 입맞에 맞는 프로그래밍 언어로 Lambda 함수 만들기 :: 정창훈 - AWS Community Day 2019내 입맞에 맞는 프로그래밍 언어로 Lambda 함수 만들기 :: 정창훈 - AWS Community Day 2019
내 입맞에 맞는 프로그래밍 언어로 Lambda 함수 만들기 :: 정창훈 - AWS Community Day 2019
 
Ecs 파헤치기
Ecs 파헤치기Ecs 파헤치기
Ecs 파헤치기
 
AWS 를 이용한 Serverless Infra 구축해보기 (Lambda, DynamoDB)
AWS 를 이용한 Serverless Infra 구축해보기 (Lambda, DynamoDB)AWS 를 이용한 Serverless Infra 구축해보기 (Lambda, DynamoDB)
AWS 를 이용한 Serverless Infra 구축해보기 (Lambda, DynamoDB)
 
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container DayEC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
EC2 컨테이너 서비스 고객사례 Vingle - 조휘철 소프트웨어 엔지니어 :: AWS Container Day
 
Kinesis / Lambda / EMR / Redshift 를 이용한 Big Data 분석 - 이상현 (빙글)
Kinesis / Lambda / EMR / Redshift 를 이용한 Big Data 분석 - 이상현 (빙글)Kinesis / Lambda / EMR / Redshift 를 이용한 Big Data 분석 - 이상현 (빙글)
Kinesis / Lambda / EMR / Redshift 를 이용한 Big Data 분석 - 이상현 (빙글)
 
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
 
AWS 환경에서 MySQL Infra 설계하기-2부.본론
AWS 환경에서 MySQL Infra 설계하기-2부.본론AWS 환경에서 MySQL Infra 설계하기-2부.본론
AWS 환경에서 MySQL Infra 설계하기-2부.본론
 
게임업계 IT 관리자를 위한 7가지 유용한 팁 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임업계 IT 관리자를 위한 7가지 유용한 팁 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming게임업계 IT 관리자를 위한 7가지 유용한 팁 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임업계 IT 관리자를 위한 7가지 유용한 팁 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
 
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기
20180726 AWS KRUG - RDS Aurora에 40억건 데이터 입력하기
 

Similar to Spark config

AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
Amazon Web Services Korea
 
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
Amazon Web Services Korea
 

Similar to Spark config (20)

learning spark - Chatper8. Tuning and Debugging
learning spark - Chatper8. Tuning and Debugginglearning spark - Chatper8. Tuning and Debugging
learning spark - Chatper8. Tuning and Debugging
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습
 
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)
 
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...
 
Springmvc
SpringmvcSpringmvc
Springmvc
 
spark database Service
spark database Servicespark database Service
spark database Service
 
스파르탄Js in sidejs5
스파르탄Js in sidejs5스파르탄Js in sidejs5
스파르탄Js in sidejs5
 
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회
 
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
[네이버오픈소스세미나] Pinpoint를 이용해서 서버리스 플랫폼 Apache Openwhisk 트레이싱하기 - 오승현
 
Kubernetes & helm 활용
Kubernetes & helm 활용Kubernetes & helm 활용
Kubernetes & helm 활용
 
Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)Spring boot 공작소(1-4장)
Spring boot 공작소(1-4장)
 
Eclipse RAP
Eclipse RAPEclipse RAP
Eclipse RAP
 
PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기
 
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...
 
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
 
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
 
19. Application - Spark Streaming 1
19. Application - Spark Streaming 119. Application - Spark Streaming 1
19. Application - Spark Streaming 1
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
스프링군살없이세팅하기(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.)
 
Spark sql
Spark sqlSpark sql
Spark sql
 

More from Junyoung Park

More from Junyoung Park (14)

Quantitive Algorithm Trading
Quantitive Algorithm TradingQuantitive Algorithm Trading
Quantitive Algorithm Trading
 
K-Means Clustering
K-Means ClusteringK-Means Clustering
K-Means Clustering
 
Common Design for Distributed Machine Learning
Common Design for Distributed Machine LearningCommon Design for Distributed Machine Learning
Common Design for Distributed Machine Learning
 
AWS EMR + Spark ML
AWS EMR + Spark MLAWS EMR + Spark ML
AWS EMR + Spark ML
 
Kaggle KKBox Churn Prediction
Kaggle KKBox Churn PredictionKaggle KKBox Churn Prediction
Kaggle KKBox Churn Prediction
 
Cloudera & Zookeeper
Cloudera & ZookeeperCloudera & Zookeeper
Cloudera & Zookeeper
 
한국어 자연어처리 101
한국어 자연어처리 101한국어 자연어처리 101
한국어 자연어처리 101
 
Continuous Integration with Gitlab
Continuous Integration with GitlabContinuous Integration with Gitlab
Continuous Integration with Gitlab
 
Docker Intro
Docker IntroDocker Intro
Docker Intro
 
Python Testing for Flask
Python Testing for FlaskPython Testing for Flask
Python Testing for Flask
 
News clustering and Recommendation system using Word Embedding
News clustering and Recommendation system using Word EmbeddingNews clustering and Recommendation system using Word Embedding
News clustering and Recommendation system using Word Embedding
 
Clustering, k means algorithm
Clustering, k means algorithmClustering, k means algorithm
Clustering, k means algorithm
 
About Neural Network
About Neural NetworkAbout Neural Network
About Neural Network
 
About SVM
About SVMAbout SVM
About SVM
 

Spark config