SlideShare a Scribd company logo
1 of 29
Download to read offline
© Cloudera, Inc. All rights reserved.
sparklyr을 활용한 R 코드 분산 처리
임상배/Solutions Engineer
Cloudera
© Cloudera, Inc. All rights reserved. 3© Cloudera, Inc. All rights reserved.
Apache Spark 개요(빠르게 대량의 데이터를 처리/분석)
• 인-메모리 기반의 고속의 범용 클러스터 컴퓨팅 엔진 (The leading candidate for “successor to
MapReduce”)
• 맵리듀스(MapReduce) 모델을 대화형 명령어 쿼리나 스트리밍으로 처리 가능하도록 확장
• 성능 : 기존 하둡 맵리듀스에 비해 빠른 성능 제공
• 활용 범위 : 개별 분산 시스템에서 수행되는 일괄 처리, 반복 알고리즘, 대화형 쿼리,
스트리밍을 단일 시스템에서 지원
• 스칼라 언어로 구현되었으며 다양한 언어(파이선, 자바, 스칼라, R)를 지원
© Cloudera, Inc. All rights reserved. 4© Cloudera, Inc. All rights reserved.
Apache Spark 개요(빠르게 대량의 데이터를 처리/분석)
• Cluster computing platform designed to be fast and general-purpose
– Speed : RDD라는 방식을 통해 메모리를 사용을 극대화하여 interactive, streaming이 빠르게 처리
– Generality : 분산처리, 배치처리, 대화형 작업, 스트리밍처리 등을 모두 같은 엔진에서 지원하여 쉬운
작업 연계
스파크 코어
단독 스케줄러 얀(YARN) 메소스(mesos)
스파크SQL
(정형화 데이터)
스파크
스트리밍(실시간)
MLlib
(머신러닝)
그래프X
스파크 생태계
Apache Spark™ is a unified
analytics engine for large-scale
data processing.
© Cloudera, Inc. All rights reserved. 5© Cloudera, Inc. All rights reserved.
R 사용자가 Spark을 알게 되면 생기는 좋은 일들…
• 하둡과 연계할 수 있음(요즘 많은 기업에서 이미 하둡에 데이터를 저장)
• 익숙한 SQL 문장으로 빅데이터를 다룰 수 있음(기존 SQL 지식 및 코딩 구현체 재활용)
• 내장형 머신 러닝 기능을 지원
• 성능, 성능, 성능
• But NFL(No Free Lunch)
52
© Cloudera, Inc. All rights reserved. 6© Cloudera, Inc. All rights reserved.
분석 프로젝트에서 데이터를 다루는 방법
Data Engineering + Data Science
• 기존 분석 소프트웨어 기반 환경 고도화(대량의 데이터 활용, 기존 보유 기술 활용, 고비용-
고객은 무엇을 원할까?)
• 소형화 방법(Big Data를 Small 데이터로 만들어 활용, 분석 알고리즘은 그대로)
• 데이터 병렬 처리 방법(데이터 처리 구간을 오픈 소스 기반 병렬 처리 엔진으로 대체, Big
Data를 다수의 Medium/Small 데이터로 나누고, 분석 알고리즘은 그대로 혹은 약간 수정)
• 알고리즘 병렬 처리 방법(Big Data 기반 병렬 처리 알고리즘-e.q. Spark MLlib)
© Cloudera, Inc. All rights reserved. 7© Cloudera, Inc. All rights reserved.
데이터 레이크(Data Lake)를 활용하여 데이터 분석하기
데이터 소스로 혹은 분석 엔진으로
Source : https://spark.rstudio.com/guides/data-lakes/
© Cloudera, Inc. All rights reserved. 8© Cloudera, Inc. All rights reserved.
Data Science Toolchain with Spark + sparklyr
source : R for Data Science Grolemund & Wickham, https://github.com/rstudio/cheatsheets/raw/master/sparklyr.pdf
© Cloudera, Inc. All rights reserved. 9© Cloudera, Inc. All rights reserved.
R과 Spark를 활용한 데이터 분석
Source : https://spark.rstudio.com/guides/data-lakes/
© Cloudera, Inc. All rights reserved. 10© Cloudera, Inc. All rights reserved.
SQLPySpark
SparkR
SQL
SQL or
DataFrame API
SQL or
DataFrame API
SQL or
DataFrame API
SQL or
DataFrame API
SQL or
DataFrame API
SQL or
DataFrame API
© Cloudera, Inc. All rights reserved.
]
SQLPySpark
SparkR
SQL
dplyr
© Cloudera, Inc. All rights reserved.
dplyr은 R에서 효율적으로 데이터 처리를 하는 도구를 제공
• select() to select columns
• filter() to filter rows
• arrange() to order rows
• mutate() to create new columns
• summarise() to aggregate
• group_by() to perform operations by group
dplyr는 로컬 데이터와 원격 데이터 소스에서 작동
• 원격 데이터 소스를 사용하면 dplyr은 해당 연산을 SQL로 변환
dplyr
© Cloudera, Inc. All rights reserved.
dplyr SQL backends
dplyr
↕
dbplyr
↕
dplyr SQL backend package*
↕
DBI
↕
DBI-compatible interface package
↕
database driver or connector
↕
database/engine
* optional
© Cloudera, Inc. All rights reserved. 14© Cloudera, Inc. All rights reserved.
sparklyr 개요
• Apache Spark를 사용하기 위한
인터페이스를 제공하는 R 패키지
• dplyr에 Spark용 SQL backend를
제공
• Apache Spark의 MLlib API 제공
• Apache Spark의 DataFrames API
일부 제공(sdf_xxx)
• RStudio가 개발
© Cloudera, Inc. All rights reserved. 15© Cloudera, Inc. All rights reserved.
참고 자료
Data Science in Spark with Sparklyr :: CHEAT SHEET
https://www.rstudio.com/resources/cheatsheets/
https://github.com/rstudio/cheatsheets/raw/master/sparklyr.pdf
https://github.com/rstudio/cheatsheets/raw/master/data-transformation.pdf
https://github.com/rstudio/cheatsheets/raw/master/keras.pdf
© Cloudera, Inc. All rights reserved. 16© Cloudera, Inc. All rights reserved.
sparklyr 배포 옵션
로컬 배포(RStudio Desktop), 클러스터 배포(RStudio Server or RStudio Desktop)
로컬 배포
• 소규모 데이터를 대상
• 학습 및 단순 테스트 용도
server
클러스터 배포
Desktop
Desktop Desktop Desktop
• 일반적인 배포 방식
• 전용 분석 서버 도입/웹 GUI
• 실험적 방식
• 운영 시스템에 권장하지 않음
Cloudera
Data Science
Workbench
© Cloudera, Inc. All rights reserved. 17© Cloudera, Inc. All rights reserved.
R코드 분산 수행(Distributing R Computations)
spark_apply()
source : https://spark.rstudio.com/guides/distributed-r/
• spark_apply()는 Spark
객체(일반적으로 Spark
DataFrame)에 R 함수를 적용
• spark 객체를 파티션하여 클러스터
전체에 분포 시킴
• 기본 파티션 방식 혹은 group_by
인수를 사용하여 사용자 지정
파티셔닝
© Cloudera, Inc. All rights reserved. 18© Cloudera, Inc. All rights reserved.
R코드 분산 수행(Distributing R Computations)
spark_apply()
source : https://spark.rstudio.com/guides/distributed-r/
© Cloudera, Inc. All rights reserved. 19© Cloudera, Inc. All rights reserved.
R코드 분산 수행(Distributing R Computations)
spark_apply()
With spark_apply() you can use any R
package inside Spark. For instance, you can
use the broom package to create a tidy data
frame from linear regression output.
source : https://spark.rstudio.com/guides/distributed-r/
© Cloudera, Inc. All rights reserved. 20© Cloudera, Inc. All rights reserved.
Apache Spark의 MLlib 활용
ml_로 시작하는 함수
source : https://github.com/rstudio/sparklyr
© Cloudera, Inc. All rights reserved. 21© Cloudera, Inc. All rights reserved.
간단한 Tip
show_query() 활용, collect는 사용 시 주의
source : https://github.com/ianmcook/dplyr-examples/tree/master/five-tips
수행 전에 show_query 기능을 사용하여 작성한 내용이
정확한지 확인
시각화를 위해 collect 하기 전에 필요한
데이터만으로 구성했는지 확인 필요
# using sparklyr:
delays_sample <- flights_spark %>%
select(dep_delay, arr_delay) %>%
na.omit() %>%
sdf_sample(fraction = 0.05, replacement = FALSE) %>%
collect()
22© Cloudera, Inc. All rights reserved.
Cloudera Data Science Workbench
More information
tiny.cloudera.com/cdsw
© Cloudera, Inc. All rights reserved. 23© Cloudera, Inc. All rights reserved.
AI 실무 프로젝트 수행 전문가의 경험
(김훈동-KOREA SPARK USER GROUP)
© Cloudera, Inc. All rights reserved. 24© Cloudera, Inc. All rights reserved.
대용량 머신 러닝 실무는…
출처 : 예측모델을 접근하는 3가지 방법론(논문 스타일 vs 캐글 스타일 vs 실무스타일)
- 김훈동(Korea Spark User Group)@Global AI Bootcamp(20181215)
© Cloudera, Inc. All rights reserved. 25© Cloudera, Inc. All rights reserved.
© Cloudera, Inc. All rights reserved. 26© Cloudera, Inc. All rights reserved.
출처 : Spark Deep learning A to Z, 김훈동(Korea Spark User Group), 201709 멜팅팡
© Cloudera, Inc. All rights reserved. 27© Cloudera, Inc. All rights reserved.
출처 : Spark Deep learning A to Z, 김훈동(Korea Spark User Group), 201709 멜팅팡
© Cloudera, Inc. All rights reserved. 28© Cloudera, Inc. All rights reserved.
출처 : Spark Deep learning A to Z, 김훈동(Korea Spark User Group), 201709 멜팅팡
© Cloudera, Inc. All rights reserved. 29© Cloudera, Inc. All rights reserved.
출처 : Spark Deep learning A to Z, 김훈동(Korea Spark User Group), 201709 멜팅팡
© Cloudera, Inc. All rights reserved.
THANK YOU

More Related Content

What's hot

Hadoop cluster os_tuning_v1.0_20170106_mobile
Hadoop cluster os_tuning_v1.0_20170106_mobileHadoop cluster os_tuning_v1.0_20170106_mobile
Hadoop cluster os_tuning_v1.0_20170106_mobile상연 최
 
Spark Day 2017@Seoul(Spark Bootcamp)
Spark Day 2017@Seoul(Spark Bootcamp)Spark Day 2017@Seoul(Spark Bootcamp)
Spark Day 2017@Seoul(Spark Bootcamp)Sang-bae Lim
 
Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)창언 정
 
Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Teddy Choi
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례Gruter
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampSang-bae Lim
 
Tajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWSTajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWSGruter
 
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
 
분석가를 위한 Aws 기반의 digital 플랫폼 구축
분석가를 위한 Aws 기반의 digital 플랫폼 구축분석가를 위한 Aws 기반의 digital 플랫폼 구축
분석가를 위한 Aws 기반의 digital 플랫폼 구축Nak Joo Kwon
 
빅데이터 인공지능 전략 및 로드맵
빅데이터 인공지능 전략 및 로드맵빅데이터 인공지능 전략 및 로드맵
빅데이터 인공지능 전략 및 로드맵r-kor
 
Hadoop 10th Birthday and Hadoop 3 Alpha
Hadoop 10th Birthday and Hadoop 3 AlphaHadoop 10th Birthday and Hadoop 3 Alpha
Hadoop 10th Birthday and Hadoop 3 AlphaDataya Nolja
 
NetApp AI Control Plane
NetApp AI Control PlaneNetApp AI Control Plane
NetApp AI Control PlaneSeungYong Baek
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례Gruter
 
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석r-kor
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습동현 강
 
Scalable system design patterns
Scalable system design patternsScalable system design patterns
Scalable system design patternsSteve Min
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106SangHoon Lee
 

What's hot (20)

Hadoop cluster os_tuning_v1.0_20170106_mobile
Hadoop cluster os_tuning_v1.0_20170106_mobileHadoop cluster os_tuning_v1.0_20170106_mobile
Hadoop cluster os_tuning_v1.0_20170106_mobile
 
Spark Day 2017@Seoul(Spark Bootcamp)
Spark Day 2017@Seoul(Spark Bootcamp)Spark Day 2017@Seoul(Spark Bootcamp)
Spark Day 2017@Seoul(Spark Bootcamp)
 
Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)
 
Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례
 
Cloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcampCloudera session seoul - Spark bootcamp
Cloudera session seoul - Spark bootcamp
 
Tajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWSTajo TPC-H Benchmark Test on AWS
Tajo TPC-H Benchmark Test on AWS
 
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
 
분석가를 위한 Aws 기반의 digital 플랫폼 구축
분석가를 위한 Aws 기반의 digital 플랫폼 구축분석가를 위한 Aws 기반의 digital 플랫폼 구축
분석가를 위한 Aws 기반의 digital 플랫폼 구축
 
Spark sql
Spark sqlSpark sql
Spark sql
 
빅데이터 인공지능 전략 및 로드맵
빅데이터 인공지능 전략 및 로드맵빅데이터 인공지능 전략 및 로드맵
빅데이터 인공지능 전략 및 로드맵
 
Hadoop 10th Birthday and Hadoop 3 Alpha
Hadoop 10th Birthday and Hadoop 3 AlphaHadoop 10th Birthday and Hadoop 3 Alpha
Hadoop 10th Birthday and Hadoop 3 Alpha
 
NetApp AI Control Plane
NetApp AI Control PlaneNetApp AI Control Plane
NetApp AI Control Plane
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
 
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석
RUCK 2017 - 강병엽 - Spark와 R을 연동한 빅데이터 분석
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습
 
Scalable system design patterns
Scalable system design patternsScalable system design patterns
Scalable system design patterns
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
 

Similar to sparklyr을 활용한 R 분산 처리

MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발Oracle Korea
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습동현 강
 
데이터 레이크 알아보기(Learn about Data Lake)
데이터 레이크 알아보기(Learn about Data Lake)데이터 레이크 알아보기(Learn about Data Lake)
데이터 레이크 알아보기(Learn about Data Lake)SeungYong Baek
 
On premise db &amp; cloud database
On premise db &amp; cloud databaseOn premise db &amp; cloud database
On premise db &amp; cloud databaseOracle Korea
 
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례 빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례 ABRC_DATA
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)Channy Yun
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Steve Min
 
OPEN_POWER8_SESSION_20150316
OPEN_POWER8_SESSION_20150316OPEN_POWER8_SESSION_20150316
OPEN_POWER8_SESSION_20150316기한 김
 
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기NAVER D2
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Jeongkyu Shin
 
Big data application architecture 요약2
Big data application architecture 요약2Big data application architecture 요약2
Big data application architecture 요약2Seong-Bok Lee
 
[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례
[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례
[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례ABRC_DATA
 
DataCore SANsymphony-v 10 소개자료 (2014 5)
DataCore SANsymphony-v 10 소개자료 (2014 5)DataCore SANsymphony-v 10 소개자료 (2014 5)
DataCore SANsymphony-v 10 소개자료 (2014 5)JH Byeon 변종호
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)uEngine Solutions
 
비트교육센터-AWS활용 1주차: EC2, S3, Elastic Beanstalks 사용
비트교육센터-AWS활용 1주차: EC2, S3, Elastic Beanstalks 사용비트교육센터-AWS활용 1주차: EC2, S3, Elastic Beanstalks 사용
비트교육센터-AWS활용 1주차: EC2, S3, Elastic Beanstalks 사용고포릿 default
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AILablup Inc.
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorialMinho Kim
 
DataWorks Summit 2017
DataWorks Summit 2017DataWorks Summit 2017
DataWorks Summit 2017Daesung Park
 
유연하고 빠른 딥러닝 프레임워크 Apache MXNet::김무현::AWS Summit Seoul 2018
유연하고 빠른 딥러닝 프레임워크 Apache MXNet::김무현::AWS Summit Seoul 2018유연하고 빠른 딥러닝 프레임워크 Apache MXNet::김무현::AWS Summit Seoul 2018
유연하고 빠른 딥러닝 프레임워크 Apache MXNet::김무현::AWS Summit Seoul 2018Amazon Web Services Korea
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AIJoongi Kim
 

Similar to sparklyr을 활용한 R 분산 처리 (20)

MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발MySQL Document Store를 활용한 NoSQL 개발
MySQL Document Store를 활용한 NoSQL 개발
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습
 
데이터 레이크 알아보기(Learn about Data Lake)
데이터 레이크 알아보기(Learn about Data Lake)데이터 레이크 알아보기(Learn about Data Lake)
데이터 레이크 알아보기(Learn about Data Lake)
 
On premise db &amp; cloud database
On premise db &amp; cloud databaseOn premise db &amp; cloud database
On premise db &amp; cloud database
 
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례 빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례
빅데이터윈윈 컨퍼런스_대용량 데이터 분석 시스템 구축사례
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)
 
OPEN_POWER8_SESSION_20150316
OPEN_POWER8_SESSION_20150316OPEN_POWER8_SESSION_20150316
OPEN_POWER8_SESSION_20150316
 
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
 
Big data application architecture 요약2
Big data application architecture 요약2Big data application architecture 요약2
Big data application architecture 요약2
 
[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례
[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례
[중소기업형 인공지능/빅데이터 기술 심포지엄] 대용량 거래데이터 분석을 위한 서버인프라 활용 사례
 
DataCore SANsymphony-v 10 소개자료 (2014 5)
DataCore SANsymphony-v 10 소개자료 (2014 5)DataCore SANsymphony-v 10 소개자료 (2014 5)
DataCore SANsymphony-v 10 소개자료 (2014 5)
 
Open standard open cloud engine (3)
Open standard open cloud engine (3)Open standard open cloud engine (3)
Open standard open cloud engine (3)
 
비트교육센터-AWS활용 1주차: EC2, S3, Elastic Beanstalks 사용
비트교육센터-AWS활용 1주차: EC2, S3, Elastic Beanstalks 사용비트교육센터-AWS활용 1주차: EC2, S3, Elastic Beanstalks 사용
비트교육센터-AWS활용 1주차: EC2, S3, Elastic Beanstalks 사용
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorial
 
DataWorks Summit 2017
DataWorks Summit 2017DataWorks Summit 2017
DataWorks Summit 2017
 
유연하고 빠른 딥러닝 프레임워크 Apache MXNet::김무현::AWS Summit Seoul 2018
유연하고 빠른 딥러닝 프레임워크 Apache MXNet::김무현::AWS Summit Seoul 2018유연하고 빠른 딥러닝 프레임워크 Apache MXNet::김무현::AWS Summit Seoul 2018
유연하고 빠른 딥러닝 프레임워크 Apache MXNet::김무현::AWS Summit Seoul 2018
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
 

sparklyr을 활용한 R 분산 처리

  • 1. © Cloudera, Inc. All rights reserved. sparklyr을 활용한 R 코드 분산 처리 임상배/Solutions Engineer Cloudera
  • 2. © Cloudera, Inc. All rights reserved. 3© Cloudera, Inc. All rights reserved. Apache Spark 개요(빠르게 대량의 데이터를 처리/분석) • 인-메모리 기반의 고속의 범용 클러스터 컴퓨팅 엔진 (The leading candidate for “successor to MapReduce”) • 맵리듀스(MapReduce) 모델을 대화형 명령어 쿼리나 스트리밍으로 처리 가능하도록 확장 • 성능 : 기존 하둡 맵리듀스에 비해 빠른 성능 제공 • 활용 범위 : 개별 분산 시스템에서 수행되는 일괄 처리, 반복 알고리즘, 대화형 쿼리, 스트리밍을 단일 시스템에서 지원 • 스칼라 언어로 구현되었으며 다양한 언어(파이선, 자바, 스칼라, R)를 지원
  • 3. © Cloudera, Inc. All rights reserved. 4© Cloudera, Inc. All rights reserved. Apache Spark 개요(빠르게 대량의 데이터를 처리/분석) • Cluster computing platform designed to be fast and general-purpose – Speed : RDD라는 방식을 통해 메모리를 사용을 극대화하여 interactive, streaming이 빠르게 처리 – Generality : 분산처리, 배치처리, 대화형 작업, 스트리밍처리 등을 모두 같은 엔진에서 지원하여 쉬운 작업 연계 스파크 코어 단독 스케줄러 얀(YARN) 메소스(mesos) 스파크SQL (정형화 데이터) 스파크 스트리밍(실시간) MLlib (머신러닝) 그래프X 스파크 생태계 Apache Spark™ is a unified analytics engine for large-scale data processing.
  • 4. © Cloudera, Inc. All rights reserved. 5© Cloudera, Inc. All rights reserved. R 사용자가 Spark을 알게 되면 생기는 좋은 일들… • 하둡과 연계할 수 있음(요즘 많은 기업에서 이미 하둡에 데이터를 저장) • 익숙한 SQL 문장으로 빅데이터를 다룰 수 있음(기존 SQL 지식 및 코딩 구현체 재활용) • 내장형 머신 러닝 기능을 지원 • 성능, 성능, 성능 • But NFL(No Free Lunch) 52
  • 5. © Cloudera, Inc. All rights reserved. 6© Cloudera, Inc. All rights reserved. 분석 프로젝트에서 데이터를 다루는 방법 Data Engineering + Data Science • 기존 분석 소프트웨어 기반 환경 고도화(대량의 데이터 활용, 기존 보유 기술 활용, 고비용- 고객은 무엇을 원할까?) • 소형화 방법(Big Data를 Small 데이터로 만들어 활용, 분석 알고리즘은 그대로) • 데이터 병렬 처리 방법(데이터 처리 구간을 오픈 소스 기반 병렬 처리 엔진으로 대체, Big Data를 다수의 Medium/Small 데이터로 나누고, 분석 알고리즘은 그대로 혹은 약간 수정) • 알고리즘 병렬 처리 방법(Big Data 기반 병렬 처리 알고리즘-e.q. Spark MLlib)
  • 6. © Cloudera, Inc. All rights reserved. 7© Cloudera, Inc. All rights reserved. 데이터 레이크(Data Lake)를 활용하여 데이터 분석하기 데이터 소스로 혹은 분석 엔진으로 Source : https://spark.rstudio.com/guides/data-lakes/
  • 7. © Cloudera, Inc. All rights reserved. 8© Cloudera, Inc. All rights reserved. Data Science Toolchain with Spark + sparklyr source : R for Data Science Grolemund & Wickham, https://github.com/rstudio/cheatsheets/raw/master/sparklyr.pdf
  • 8. © Cloudera, Inc. All rights reserved. 9© Cloudera, Inc. All rights reserved. R과 Spark를 활용한 데이터 분석 Source : https://spark.rstudio.com/guides/data-lakes/
  • 9. © Cloudera, Inc. All rights reserved. 10© Cloudera, Inc. All rights reserved. SQLPySpark SparkR SQL SQL or DataFrame API SQL or DataFrame API SQL or DataFrame API SQL or DataFrame API SQL or DataFrame API SQL or DataFrame API
  • 10. © Cloudera, Inc. All rights reserved. ] SQLPySpark SparkR SQL dplyr
  • 11. © Cloudera, Inc. All rights reserved. dplyr은 R에서 효율적으로 데이터 처리를 하는 도구를 제공 • select() to select columns • filter() to filter rows • arrange() to order rows • mutate() to create new columns • summarise() to aggregate • group_by() to perform operations by group dplyr는 로컬 데이터와 원격 데이터 소스에서 작동 • 원격 데이터 소스를 사용하면 dplyr은 해당 연산을 SQL로 변환 dplyr
  • 12. © Cloudera, Inc. All rights reserved. dplyr SQL backends dplyr ↕ dbplyr ↕ dplyr SQL backend package* ↕ DBI ↕ DBI-compatible interface package ↕ database driver or connector ↕ database/engine * optional
  • 13. © Cloudera, Inc. All rights reserved. 14© Cloudera, Inc. All rights reserved. sparklyr 개요 • Apache Spark를 사용하기 위한 인터페이스를 제공하는 R 패키지 • dplyr에 Spark용 SQL backend를 제공 • Apache Spark의 MLlib API 제공 • Apache Spark의 DataFrames API 일부 제공(sdf_xxx) • RStudio가 개발
  • 14. © Cloudera, Inc. All rights reserved. 15© Cloudera, Inc. All rights reserved. 참고 자료 Data Science in Spark with Sparklyr :: CHEAT SHEET https://www.rstudio.com/resources/cheatsheets/ https://github.com/rstudio/cheatsheets/raw/master/sparklyr.pdf https://github.com/rstudio/cheatsheets/raw/master/data-transformation.pdf https://github.com/rstudio/cheatsheets/raw/master/keras.pdf
  • 15. © Cloudera, Inc. All rights reserved. 16© Cloudera, Inc. All rights reserved. sparklyr 배포 옵션 로컬 배포(RStudio Desktop), 클러스터 배포(RStudio Server or RStudio Desktop) 로컬 배포 • 소규모 데이터를 대상 • 학습 및 단순 테스트 용도 server 클러스터 배포 Desktop Desktop Desktop Desktop • 일반적인 배포 방식 • 전용 분석 서버 도입/웹 GUI • 실험적 방식 • 운영 시스템에 권장하지 않음 Cloudera Data Science Workbench
  • 16. © Cloudera, Inc. All rights reserved. 17© Cloudera, Inc. All rights reserved. R코드 분산 수행(Distributing R Computations) spark_apply() source : https://spark.rstudio.com/guides/distributed-r/ • spark_apply()는 Spark 객체(일반적으로 Spark DataFrame)에 R 함수를 적용 • spark 객체를 파티션하여 클러스터 전체에 분포 시킴 • 기본 파티션 방식 혹은 group_by 인수를 사용하여 사용자 지정 파티셔닝
  • 17. © Cloudera, Inc. All rights reserved. 18© Cloudera, Inc. All rights reserved. R코드 분산 수행(Distributing R Computations) spark_apply() source : https://spark.rstudio.com/guides/distributed-r/
  • 18. © Cloudera, Inc. All rights reserved. 19© Cloudera, Inc. All rights reserved. R코드 분산 수행(Distributing R Computations) spark_apply() With spark_apply() you can use any R package inside Spark. For instance, you can use the broom package to create a tidy data frame from linear regression output. source : https://spark.rstudio.com/guides/distributed-r/
  • 19. © Cloudera, Inc. All rights reserved. 20© Cloudera, Inc. All rights reserved. Apache Spark의 MLlib 활용 ml_로 시작하는 함수 source : https://github.com/rstudio/sparklyr
  • 20. © Cloudera, Inc. All rights reserved. 21© Cloudera, Inc. All rights reserved. 간단한 Tip show_query() 활용, collect는 사용 시 주의 source : https://github.com/ianmcook/dplyr-examples/tree/master/five-tips 수행 전에 show_query 기능을 사용하여 작성한 내용이 정확한지 확인 시각화를 위해 collect 하기 전에 필요한 데이터만으로 구성했는지 확인 필요 # using sparklyr: delays_sample <- flights_spark %>% select(dep_delay, arr_delay) %>% na.omit() %>% sdf_sample(fraction = 0.05, replacement = FALSE) %>% collect()
  • 21. 22© Cloudera, Inc. All rights reserved. Cloudera Data Science Workbench More information tiny.cloudera.com/cdsw
  • 22. © Cloudera, Inc. All rights reserved. 23© Cloudera, Inc. All rights reserved. AI 실무 프로젝트 수행 전문가의 경험 (김훈동-KOREA SPARK USER GROUP)
  • 23. © Cloudera, Inc. All rights reserved. 24© Cloudera, Inc. All rights reserved. 대용량 머신 러닝 실무는… 출처 : 예측모델을 접근하는 3가지 방법론(논문 스타일 vs 캐글 스타일 vs 실무스타일) - 김훈동(Korea Spark User Group)@Global AI Bootcamp(20181215)
  • 24. © Cloudera, Inc. All rights reserved. 25© Cloudera, Inc. All rights reserved.
  • 25. © Cloudera, Inc. All rights reserved. 26© Cloudera, Inc. All rights reserved. 출처 : Spark Deep learning A to Z, 김훈동(Korea Spark User Group), 201709 멜팅팡
  • 26. © Cloudera, Inc. All rights reserved. 27© Cloudera, Inc. All rights reserved. 출처 : Spark Deep learning A to Z, 김훈동(Korea Spark User Group), 201709 멜팅팡
  • 27. © Cloudera, Inc. All rights reserved. 28© Cloudera, Inc. All rights reserved. 출처 : Spark Deep learning A to Z, 김훈동(Korea Spark User Group), 201709 멜팅팡
  • 28. © Cloudera, Inc. All rights reserved. 29© Cloudera, Inc. All rights reserved. 출처 : Spark Deep learning A to Z, 김훈동(Korea Spark User Group), 201709 멜팅팡
  • 29. © Cloudera, Inc. All rights reserved. THANK YOU