amazon emr 고급 활용 기법 - aws summit seoul 2017

55
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 홍준혁 솔루션즈 아키텍트, 아마존웹서비스 코리아 오재혁 팀장, HYPERCONNECT Amazon EMR 고급활용 기법 HYPERCONNECT의 EMR을 활용한 분석 사례

Upload: amazon-web-services-korea

Post on 21-Jan-2018

703 views

Category:

Technology


8 download

TRANSCRIPT

Page 1: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

홍준혁 솔루션즈 아키텍트, 아마존웹서비스 코리아오재혁 팀장, HYPERCONNECT

Amazon EMR 고급활용 기법HYPERCONNECT의 EMR을 활용한 분석 사례

Page 2: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

본 강연에서 다룰 내용

Amazon EMR 소개

Amazon EMR과 함께 다양한 어플리케이션 활용

Amazon EMR운영 모범 사례

고객 활용사례

Page 3: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

Amazon EMR 소개

Page 4: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

Amazon EMR은 관리형 하둡 서비스입니다

On-premise Amazon EMR하둡 w/ EC2

Page 5: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

여러분의 경험을 동일하게 활용할 수 있습니다

Amazon EMR

Page 6: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

다양한 서비스와 함께 구축이 가능합니다.

Amazon DynamoDB

Amazon RDSAmazon Kinesis

Amazon Redshift

Amazon S3

Amazon EMR

Page 7: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

Amazon EMR과 함께다양한 어플리케이션 활용

Page 8: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

데이터 분석 파이프라인

수집 시각화저장 처리

데이터 소비

Page 9: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

효율적인 파이프라인을 만들려면

안전하고 비용 효과적인 단일 데이터 저장소 구축

데이터에 대한 SQL 인터페이스 제공

분석 워크로드간 독립성 유지

목적에 맞는 데이터 분석, 시각화 도구 활용

새로운 분석 워크로드 지원 (스트림, 통계 등)

Page 10: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

단일 저장소 기반의 데이터 수집

Amazon S3

단일 데이터 저장소

Page 11: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

S3를 로그 수집기 저장소로 활용

<match s3.*.*>

...aws_key_id AWS_KEY_IDaws_sec_key AWS_SECRET/KEYs3_bucket BUCKET_NAMEs3_region REGION_NAMEpath DIRECTORY store_as txt

time_slice_format %Y%m%d%Htime_slice_wait 10m

<match s3.*.*>

Page 12: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

S3를 ETL 저장소로도 활용

sqoop import-all-tables

--connect jdbc:mysql://ec2-34-xxx-xx-xxx.compute-1.amazonaws.com:3306/customer –username administrator –password password

--warehouse-dir s3://Bucket_name/Directory_name--num-mappers 4

--fields-terminated-by ‘,’

--lines-terminated-by ‘\n’

--exclude-tables current_dept_emp,

dept_emp_latest_date

Page 13: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

수집 데이터의 SQL 인터페이스 활용

Amazon S3

워크로드간 독립성 확보

Page 14: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

맵리듀스를 활용한 데이터 처리

loadlog = LOAD 's3://Bucket_name/Directory_name/Logfile_name'USING JsonLoader

('host:chararray,user:chararray,method:chararray,path:chararray,

code:INT,size:INT,referer:chararray,agent:chararray,time:chararray');

ip_data = GROUP loadlog BY host ;

ip_count = FOREACH ip_data GENERATE group AS time,COUNT(loadJson) as total_visits ;

sort_data = RANK ip_count BY total_visits DESC ;

store sort_data into 's3://Bucket_name/Logoutput_directory/' using PigStorage();

Page 15: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

SQL on EMR의 활용

CREATE EXTERNAL TABLE Customer_info (

customer_no INT ,

birth_date DATE ,

first_name VARCHAR(14) ,

last_name VARCHAR(16) ,

gender STRING ,

login_date DATE

)

ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE

LOCATION ‘s3://Bucket_name/Directory_name/Table_name/’

;

Page 16: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

목적에 따른 다양한 데이터 소비

Amazon Quicksight

Page 17: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

Amazon Quicksight를 활용한 BI분석

Page 18: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

대화형 SQL을 활용한 분석 수행

Page 19: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

Apache Spark Core

SparkSQL

SparkStreaming

ML GraphX

분산환경 확장성 제공

동적 리소스 관리

단일 프레임워크에서비즈니스 로직 구현

메모리 기반 빠른 성능 개발자를 위한 다양한언어 지원

새로운 분석 워크로드 적용

Page 20: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

실시간 데이터 분석 아키텍쳐

Amazon Kinesis

Amazon S3

분석 코드 작성, 데이터 시각화 및대쉬보드 작성

Page 21: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

실시간 데이터 전송을 위한 Amazon Kinesis

Shard 1

Shard 2

Shard n

Kinesis Producer Kinesis Consumer

Amazon Kinesis

Page 22: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

아파치 스파크 데이터 프레임 활용

value1, value2, value3

value4, value5, value6

value7, value8, value9

value1, value2, value3

value4, value5, value6

value7, value8, value9

value1, value2, value3

value4, value5, value6

value7, value8, value9

Micro batch n-1 Micro batch n Micro batch n+1

User_id Content_id timestamp

Value1 Value2 value3

Value4 Value5 value6

Value7 Value8 value9

메모리테이블

Page 23: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

Spark 어플리케이션 작성

val endpointUrl = https://kinesis.us-east-1.amazonaws.com

....

val numShards = kinesisClient.describeStream("spark-demo").getStreamDescription().getShards().size

....

val batchInterval = Seconds(30)

....

val kinesisStreams = (0 until numStreams).map { i =>

KinesisUtils.createStream(ssc, "app-spark-demo", "spark-demo", endpointUrl, regionName,InitialPositionInStream.LATEST, kinesisCheckpointInterval, StorageLevel.MEMORY_AND_DISK_2)

}

스트림데이터의 30초배치주기 설정

데이터프레임 생성

Page 24: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

Spark 어플리케이션 작성

val schemaString = “user_id,content_id,timestamp“

....val tableSchema = StructType( schemaString.split(",").map(fieldName=> StructField(fieldName, StringType, true)))

....wordsDF.registerTempTable("realTimeTable")

스트림 데이터의 스키마 정의

메모리기반 테이블 저장

Page 25: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

Zeppelin에서 분석 시각화

* https://aws.amazon.com/ko/blogs/big-data/analyze-realtime-data-from-amazon-kinesis-streams-using-zeppelin-and-spark-streaming/

Page 26: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

데이터 과학자를 위한 아키텍쳐 확장

Amazon EMR

Amazon S3 데이터분석

Page 27: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

부트스트랩 활용하여 외부 어플리케이션 구성

S3를 스크립트 저장소로 활용

Page 28: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

R과 Spark 연동 패키지 활용

# Connect to Spark

library(sparklyr)

library(dplyr)

library(ggplot2)

sc <- spark_connect(master = "yarn-client“, version = ‘2.0.2')

Page 29: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

R-Studio를 통한 데이터 과학자 활용

* https://aws.amazon.com/ko/blogs/big-data/running-sparklyr-rstudios-r-interface-to-spark-on-amazon-emr/

Page 30: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

EMR을 활용한 빅 데이터 파이프라인 완성

Amazon Kinesis

Page 31: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

Amazon EMR 운영모범사례

Page 32: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

EMR Instance Fleets을 활용하세요

최대 5개까지 서로다른 타입 선택

Spot인스턴스 중단시온디맨드로 자동 전환

Page 33: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

다양한 인스턴스를 선택하세요

업무 마스터 인스턴스 그룹 코어 인스턴스 그룹 태스크 인스턴스 그룹

배치 작업 On-demandOn-demand

또는 Instance-fleet 혼합Spot 또는

instance-fleet 혼합

데이터 변환 Spot Spot Spot

실시간 처리 On-Demand On-DemandSpot 또는

instance-fleet 혼합

개발 테스트 Spot Spot Spot

Page 34: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

향상된 관리 기능을 활용하세요.

인스턴스 용량 설정YARN 리소스사용기반 설정

자동확장/축소선택

Page 35: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

메타데이터를 관리하세요.

[ {

"Classification": "hive-site",

"Properties": {

"javax.jdo.option.ConnectionURL":"jdbc:mysql:\/\/RDS-endpoint:3306\/hive?createDatabaseIfNotExist=true",

"javax.jdo.option.ConnectionDriverName": "org.mariadb.jdbc.Driver",

"javax.jdo.option.ConnectionUserName": "username",

"javax.jdo.option.ConnectionPassword": "password"

}

} ]

aws emr create-cluster --release-label emr-5.4.0 --instance-type

m3.xlarge --instance-count 2 --applications Name=Hive --

configurations hivemetadata.json --use-default-roles

Page 36: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

다양한 데이터 포맷을 활용하세요

Page 37: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017
Page 38: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

“시간, 언어, 공간의 제약을 넘어 인류 개개인의 도달가능한인간관계를 전 세계로 넓힌다”

• 2014년 3월 엔지니어들을 주축으로 설립

• 비디오 & 소셜네트워킹 기술스타트업

• 약 20개 국적의 100명 이상의직원들이 근무 중

Page 39: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

• 화면을 넘길 때마다 전 세계의 새로운 사람들을 만날 수 있는 ‘소셜 디스커버리‘ 플랫폼

• 최초로 WebRTC 를 모바일에 적용해 상용화

• 주요 기능 - 친구추가, 실시간 음성 번역, 얼굴인식 스티커 등

• 주요 성과

- 전 세계 200여 개 국가에서 1억 다운로드

- 160억 회 이상의 누적 매치

- 2015, 2016 구글플레이 올해의 앱 선정

Page 40: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

데이터 분석 플랫폼 구축 목표

• 다양한 분석 수요에 따른 데이터 추출 / 변환 / 적재

• DataFlow 기획 / 제작 / 관리

• 대쉬보드 / 레포트 / EDA 도구 제공

• 이상 행동 탐지, 매칭 상대 추천 등 데이터 기반 서비스 제작

Page 41: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

1년전에는

서비스데이터베이스

분석데이터베이스

레포트생성

Page 42: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

하지만 사용자 증가에 따라

대용량 데이터에 대한 처리 고민• 5천만 매치 데이터 / 일

• 7억건 이벤트 / 일

• 1T 생성 / 일

Page 43: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

Amazon S3와 Redshift를 활용하여

• 다양한 데이터 수집 가능

• 데이터 처리 시간 단축

Event log

Batch AnalysisAd-hoc Analysis

Reporing

3rd party Data

Service DB

집계 시간 – 2시간 47분

집계 시간 – 9시간 08분

3배 단축

Page 44: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

다양한 요구 등장

대용량 데이터에 대한 안정적 처리 필요

• 이벤트 로그의 전처리 과정 단축

• 배포 후 실시간 확인

• Ad-hoc레포트를 위한 데이터 준비 필요

Page 45: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

다양한 업무 요구사항 충족을 위해

Amazon EMR을 선택한 이유

• S3 에 보관하고 있는 데이터의 접근성이 높음

• CPU bound (auto scaling) 에 대한 보장

• IO bound (S3) 에 대한 보장

• 보고서 작성을 위한 SQL의 활용

Page 46: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

Amazon EMR (Hive)을 도입하여

시작시간 종료시간 처리시간

07-Apr-2017 09:26:33

07-Apr-2017 09:44:59 18.43min

Hourly Sessionizing 소요시간12배 향상

Page 47: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

Amazone EMR을 활용한 플랫폼 구축

Event log

Amazon S3

Referrer

Access ControlKPI Dashboard

Aggregation(Short-term) Adhoc Anaysis

Sessionizing(Long-term) Adhoc Anaysis

Realtime Reporting /Anaysis

Page 48: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017
Page 49: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

새로운 도전과제

• 회원정보등의 데이터 재처리

• Azar 모바일 이벤트 데이터 수집

• 효과적인 비즈니스 보고서 작성 요청 대응

Page 50: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

To-Be 아키텍쳐

Amazon Kinesis

Amazon Quicksight

Page 51: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

맺음말

Page 52: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

꼭 기억해 주세요!!!

• S3를 활용한 안전하고 비용 효과적인 저장소를 구축하세요.

• 분석 워크로드간 독립성을 유지하세요.

• 다양한 데이터 분석, 시각화 도구 활용하세요.

• Spot Fleets을 활용하여 비용을 절감하세요.

• 관리 자동화를 위해 오토 스케일링을 설정하세요.

Page 53: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

본 강연이 끝난 후…

Amazon EMR 자습서 및 샘플코드를 참조하세요.

https://aws.amazon.com/articles/Elastic-MapReduce

Amazon EMR 블로그를 통해 다양한 소식 및 사용 사례를

참조하세요.

https://aws.amazon.com/ko/blogs/aws/category/amazon-emr/

Page 54: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

Thank you!

함께 해주셔서 감사합니다!

Page 55: Amazon EMR 고급 활용 기법 - AWS Summit Seoul 2017

https://www.awssummit.kr

AWS Summit 모바일 앱을 통해 지금 세션 평가에참여하시면, 행사 후 기념품을 드립니다.

#AWSSummitKR 해시태그로 소셜 미디어에여러분의 행사 소감을 올려주세요.

발표 자료 및 녹화 동영상은 AWS Korea 공식 소셜채널로 공유될 예정입니다.

여러분의 피드백을 기다립니다!