SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
Kaggler를위한AWS EMR + Spark ML
Apache Spark, Zeppelin
Spark Standalone mode
Spark YARN cluster mode
Spark SQL DataFrame
Spark ML, MLlib
Data parralell vs Computing parralell
Online learning on Spark
AWS Elastic MapReduce
Distributed Computing
AWS EMR + S3 Architecture
Data partitioning, skew
도대체ML에서Spark이왜필요한가?
Kaggler는대부분 Sklearn, XGBoost, pandas 등의패키지를사용
딥러닝은 TensorFlow, Keras, PyTorch 를사용
하지만Kaggle 데이터는많아봐야500만줄이라는게 함정
현실은? 하루에정제된Feature가 최소500만줄
그렇다면1년이상의기간에대하여ML을돌려볼수있을까?
모델에대한파라메터튜닝은얼마나오래걸릴까?
실제서비스에실시간으로모델을서빙해야한다면?
Out of Memory Error 발생
resampling, pandas chunk, map, concat 등의노오력을하면어떻게든읽을
수는있겠지만, 전처리까지하려면한참걸린다...
Apache Spark
https://spark.apache.org/
Spark is a fast and general engine for large‑scale data processing
Apache Spark has an advanced DAG execution engine that
supports acyclic data flow and in‑memory computing
Apache Spark
쉽고 빠른In‑Memory Computing을지원
Scala, Python, R에대한high‑level API를제공
범용ANSI SQL 지원(Spark SQL)
Spark Streaming, ML, GraphX 등패키지를통해복잡한분석이가능
Runs Everywhere (Hadoop, Mesos, standalone, Cloud)
Access diverse data sources (HDFS, Cassandra, HBase, and S3)
Spark process
이제Standalone Mode에서실습해보자
마음편하게 Docker 이미지를사용(Spark 2.2, Python 3.x)
https://hub.docker.com/r/jupyter/pyspark‑notebook/
$ docker pull jupyter/pyspark-notebook
$ docker run -it -p 8888:8888 jupyter/pyspark-notebook
# local notebook 폴더를 공유하고 싶다면 마운트 옵션 추가
-v /MyPath:/home/jovyan/notebook
# password를 설정하고 싶다면 start-notebook.sh 스크립트 활용
start-notebook.sh --NotebookApp.password='sha1:blabla'
RDD에서DataFrame, DataSet으로변화
RDD Lineage, Action, Transformation
RDDs track the series of transformations used to build them to
recompute lost data (Fault Tolerance)
Spark SQL, DAGScheduler
PySpark SQL API
공식문서가 제일좋다(사용하고 있는버전을꼭확인할것)
http://spark.apache.org/docs/latest/api/python/pyspark.sql.html
https://spark.apache.org/docs/latest/sql‑programming‑guide.html
Spark Properties
클러스터운영, 어플리케이션실행에따라다양한설정값을제공
driver, executor memory, core와같은옵션은중요
https://spark.apache.org/docs/latest/configuration.html
https://www.slideshare.net/JunyoungPark22/spark‑config
자그럼이제클러스터를구축해보자
Apache Hadoop, Spark, HBase, Hive, Flink...
일일히설치하기엔너무벅찬친구들(관리가 더힘들다는건 함정)
각 프레임워크에대한Dependency 문제는어떻게?
지속적인버전업에대한요구사항...
네트워크장애, 예기치못한장애...
Auto Scaling, Provisioning...
AWS EMR
https://aws.amazon.com/ko/emr/
Amazon EMR은관리형하둡프레임워크
동적으로확장가능한Amazon EC2 인스턴스전체에서대량의데이터를
쉽고 빠르며비용효율적으로처리
Amazon EMR에서Apache Spark, HBase, Presto 및Flink와같이널리
사용되는분산프레임워크를실행
Amazon S3 및Amazon DynamoDB와같은다른AWS 데이터스토어
의데이터와상호작용할수있습니다.
Amazon EMR은로그 분석, 웹인덱싱, 데이터변환(ETL), 기계 학습등
다양한사례를안전하고 안정적으로처리
AWS EMR
Dependency 문제는어떻게? Apache BigTop
Auto Scaling, Provisioning 지원
릴리즈히스토리를확인하자
http://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr‑
release‑components.html
EMR의인스턴스에는start / restart 가 없음
종료하면무조건 teminate, 데이터도완전히날아감
S3에저장하는걸 추천
Master Node
클러스터관리, 하위그룹에대한MapReduce 실행/ 작업스케줄링
수행되는각 작업의상태를추적하고 인스턴스그룹의상태를모니터링
Hadoop 마스터노드와유사한개념(한개만존재)
Core Node
작업을실행하고 HDFS를사용하여데이터를저장
Hadoop 슬레이브노드와유사
Task Node
작업을실행, Hadoop 슬레이브노드와유사
연산량이많아CPU와메모리노드만확장하고 싶은경우에사용
Hadoop (HDFS, YARN)
여러개의컴퓨팅플랫폼을동시에실행할경우(MR, Spark, Storm...)
각 서버의리소스가 부족하여정상적으로수행되던작업들이
다른작업에의해문제가 발생
ResourceManager: 클러스터전체의리소스를관리, 스케줄링
NodeManager: Container를모니터링(Health Check)
AWS EMR에서YARN Cluster mode로실습해보자
AWS EMR Step을활용
aws‑cli, boto3, Airflow 등을활용해서자동화가능
$ aws emr add-steps
--cluster-id $CLUSTERID,
--steps Name=$JOBNAME,
Jar=$JARFILE,
Args=[
/usr/lib/spark/bin/spark-submit,
--deploy-mode,cluster,
--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}'
Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML
AWS EMR + Spark ML

Mais conteúdo relacionado

Mais procurados

구글의 공룡화
구글의 공룡화구글의 공룡화
구글의 공룡화juhyun
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 
Spark & Zeppelin을 활용한 한국어 텍스트 분류
Spark & Zeppelin을 활용한 한국어 텍스트 분류Spark & Zeppelin을 활용한 한국어 텍스트 분류
Spark & Zeppelin을 활용한 한국어 텍스트 분류Taejun Kim
 
Zeppelin notebook 만들기
Zeppelin notebook 만들기Zeppelin notebook 만들기
Zeppelin notebook 만들기Soo-Kyung Choi
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna현철 박
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례Taehyeon Oh
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampSang-bae Lim
 
Spark machine learning & deep learning
Spark machine learning & deep learningSpark machine learning & deep learning
Spark machine learning & deep learninghoondong kim
 
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례Taejun Kim
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Yongho Ha
 
분석가를 위한 Aws 기반의 digital 플랫폼 구축
분석가를 위한 Aws 기반의 digital 플랫폼 구축분석가를 위한 Aws 기반의 digital 플랫폼 구축
분석가를 위한 Aws 기반의 digital 플랫폼 구축Nak Joo Kwon
 
Spark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With SparkSpark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With SparkSangHoon Lee
 
Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Channy Yun
 
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWSGruter
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례Gruter
 
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & SparkDeep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Sparkhoondong kim
 

Mais procurados (20)

구글의 공룡화
구글의 공룡화구글의 공룡화
구글의 공룡화
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
Spark & Zeppelin을 활용한 한국어 텍스트 분류
Spark & Zeppelin을 활용한 한국어 텍스트 분류Spark & Zeppelin을 활용한 한국어 텍스트 분류
Spark & Zeppelin을 활용한 한국어 텍스트 분류
 
Zeppelin notebook 만들기
Zeppelin notebook 만들기Zeppelin notebook 만들기
Zeppelin notebook 만들기
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcamp
 
Spark machine learning & deep learning
Spark machine learning & deep learningSpark machine learning & deep learning
Spark machine learning & deep learning
 
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
 
Google2
Google2Google2
Google2
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
 
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
 
분석가를 위한 Aws 기반의 digital 플랫폼 구축
분석가를 위한 Aws 기반의 digital 플랫폼 구축분석가를 위한 Aws 기반의 digital 플랫폼 구축
분석가를 위한 Aws 기반의 digital 플랫폼 구축
 
Spark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With SparkSpark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With Spark
 
Google2
Google2Google2
Google2
 
Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)
 
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
 
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & SparkDeep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
 

Semelhante a AWS EMR + Spark ML

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
 
Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기SangWoo Kim
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)Hyojun Jeon
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들Woong Seok Kang
 
AWS없이 만든 AWS와 유사한 데이터 파이프라인
AWS없이 만든  AWS와 유사한 데이터 파이프라인AWS없이 만든  AWS와 유사한 데이터 파이프라인
AWS없이 만든 AWS와 유사한 데이터 파이프라인Kim Hyuk
 
AWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep DiveAWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep DiveAmazon Web Services Korea
 
Python & Spark
Python & SparkPython & Spark
Python & Sparkitproman35
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 

Semelhante a AWS EMR + Spark ML (8)

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...
 
Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
 
AWS없이 만든 AWS와 유사한 데이터 파이프라인
AWS없이 만든  AWS와 유사한 데이터 파이프라인AWS없이 만든  AWS와 유사한 데이터 파이프라인
AWS없이 만든 AWS와 유사한 데이터 파이프라인
 
AWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep DiveAWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep Dive
 
Python & Spark
Python & SparkPython & Spark
Python & Spark
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 

Mais de Junyoung Park

Quantitive Algorithm Trading
Quantitive Algorithm TradingQuantitive Algorithm Trading
Quantitive Algorithm TradingJunyoung Park
 
Common Design for Distributed Machine Learning
Common Design for Distributed Machine LearningCommon Design for Distributed Machine Learning
Common Design for Distributed Machine LearningJunyoung Park
 
Cloudera & Zookeeper
Cloudera & ZookeeperCloudera & Zookeeper
Cloudera & ZookeeperJunyoung Park
 
한국어 자연어처리 101
한국어 자연어처리 101한국어 자연어처리 101
한국어 자연어처리 101Junyoung Park
 
Continuous Integration with Gitlab
Continuous Integration with GitlabContinuous Integration with Gitlab
Continuous Integration with GitlabJunyoung Park
 
Python Testing for Flask
Python Testing for FlaskPython Testing for Flask
Python Testing for FlaskJunyoung Park
 
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 EmbeddingJunyoung Park
 
Clustering, k means algorithm
Clustering, k means algorithmClustering, k means algorithm
Clustering, k means algorithmJunyoung Park
 
About Neural Network
About Neural NetworkAbout Neural Network
About Neural NetworkJunyoung Park
 

Mais de Junyoung Park (13)

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
 
Spark config
Spark configSpark config
Spark config
 
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
 

AWS EMR + Spark ML

  • 2. Apache Spark, Zeppelin Spark Standalone mode Spark YARN cluster mode Spark SQL DataFrame Spark ML, MLlib Data parralell vs Computing parralell Online learning on Spark AWS Elastic MapReduce Distributed Computing AWS EMR + S3 Architecture Data partitioning, skew
  • 3. 도대체ML에서Spark이왜필요한가? Kaggler는대부분 Sklearn, XGBoost, pandas 등의패키지를사용 딥러닝은 TensorFlow, Keras, PyTorch 를사용 하지만Kaggle 데이터는많아봐야500만줄이라는게 함정 현실은? 하루에정제된Feature가 최소500만줄 그렇다면1년이상의기간에대하여ML을돌려볼수있을까? 모델에대한파라메터튜닝은얼마나오래걸릴까? 실제서비스에실시간으로모델을서빙해야한다면?
  • 4. Out of Memory Error 발생 resampling, pandas chunk, map, concat 등의노오력을하면어떻게든읽을 수는있겠지만, 전처리까지하려면한참걸린다...
  • 5. Apache Spark https://spark.apache.org/ Spark is a fast and general engine for large‑scale data processing Apache Spark has an advanced DAG execution engine that supports acyclic data flow and in‑memory computing
  • 6. Apache Spark 쉽고 빠른In‑Memory Computing을지원 Scala, Python, R에대한high‑level API를제공 범용ANSI SQL 지원(Spark SQL) Spark Streaming, ML, GraphX 등패키지를통해복잡한분석이가능
  • 7. Runs Everywhere (Hadoop, Mesos, standalone, Cloud) Access diverse data sources (HDFS, Cassandra, HBase, and S3)
  • 9. 이제Standalone Mode에서실습해보자 마음편하게 Docker 이미지를사용(Spark 2.2, Python 3.x) https://hub.docker.com/r/jupyter/pyspark‑notebook/ $ docker pull jupyter/pyspark-notebook $ docker run -it -p 8888:8888 jupyter/pyspark-notebook # local notebook 폴더를 공유하고 싶다면 마운트 옵션 추가 -v /MyPath:/home/jovyan/notebook # password를 설정하고 싶다면 start-notebook.sh 스크립트 활용 start-notebook.sh --NotebookApp.password='sha1:blabla'
  • 11. RDD Lineage, Action, Transformation RDDs track the series of transformations used to build them to recompute lost data (Fault Tolerance)
  • 13.
  • 14. PySpark SQL API 공식문서가 제일좋다(사용하고 있는버전을꼭확인할것) http://spark.apache.org/docs/latest/api/python/pyspark.sql.html https://spark.apache.org/docs/latest/sql‑programming‑guide.html Spark Properties 클러스터운영, 어플리케이션실행에따라다양한설정값을제공 driver, executor memory, core와같은옵션은중요 https://spark.apache.org/docs/latest/configuration.html https://www.slideshare.net/JunyoungPark22/spark‑config
  • 15. 자그럼이제클러스터를구축해보자 Apache Hadoop, Spark, HBase, Hive, Flink... 일일히설치하기엔너무벅찬친구들(관리가 더힘들다는건 함정) 각 프레임워크에대한Dependency 문제는어떻게? 지속적인버전업에대한요구사항... 네트워크장애, 예기치못한장애... Auto Scaling, Provisioning...
  • 16. AWS EMR https://aws.amazon.com/ko/emr/ Amazon EMR은관리형하둡프레임워크 동적으로확장가능한Amazon EC2 인스턴스전체에서대량의데이터를 쉽고 빠르며비용효율적으로처리 Amazon EMR에서Apache Spark, HBase, Presto 및Flink와같이널리 사용되는분산프레임워크를실행 Amazon S3 및Amazon DynamoDB와같은다른AWS 데이터스토어 의데이터와상호작용할수있습니다. Amazon EMR은로그 분석, 웹인덱싱, 데이터변환(ETL), 기계 학습등 다양한사례를안전하고 안정적으로처리
  • 17. AWS EMR Dependency 문제는어떻게? Apache BigTop Auto Scaling, Provisioning 지원 릴리즈히스토리를확인하자 http://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr‑ release‑components.html EMR의인스턴스에는start / restart 가 없음 종료하면무조건 teminate, 데이터도완전히날아감 S3에저장하는걸 추천
  • 18.
  • 19. Master Node 클러스터관리, 하위그룹에대한MapReduce 실행/ 작업스케줄링 수행되는각 작업의상태를추적하고 인스턴스그룹의상태를모니터링 Hadoop 마스터노드와유사한개념(한개만존재) Core Node 작업을실행하고 HDFS를사용하여데이터를저장 Hadoop 슬레이브노드와유사 Task Node 작업을실행, Hadoop 슬레이브노드와유사 연산량이많아CPU와메모리노드만확장하고 싶은경우에사용
  • 20. Hadoop (HDFS, YARN) 여러개의컴퓨팅플랫폼을동시에실행할경우(MR, Spark, Storm...) 각 서버의리소스가 부족하여정상적으로수행되던작업들이 다른작업에의해문제가 발생
  • 22. AWS EMR에서YARN Cluster mode로실습해보자 AWS EMR Step을활용 aws‑cli, boto3, Airflow 등을활용해서자동화가능 $ aws emr add-steps --cluster-id $CLUSTERID, --steps Name=$JOBNAME, Jar=$JARFILE, Args=[ /usr/lib/spark/bin/spark-submit, --deploy-mode,cluster, --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}'