SlideShare a Scribd company logo
1 of 52
Download to read offline
Spark + S3 + R3 을 이용한
데이터 분석 시스템 만들기
VCNC 개발팀 김명보
AWS 한국 유저 그룹 (#awskrug)
2014.12.20
발표자 소개
• 김명보
• VCNC에서 비트윈을 개발하고 있는 개발자
• 서버팀과 데이터 팀에서 잡다한 것들을 고치는 중
• 회사에서 AWS에 돈을 쓰는 것을 담당
비트윈
• 커플들을 위한 모바일 서비스
• 아이폰, 안드로이드 어플리케이션 제공
• 채팅, 기념일, 사진, 메모, 캘린더 기능 제공
• 전 세계에서 1000만+ 다운로드 (as of 2014.12)
• http://between.us
• http://engineering.vcnc.co.kr
2014년 초
VCNC 데이터 분석 팀…
그들은 늘어나는 데이터에
고통 받고 있었는데 …
기존 데이터 분석 시스템
S3Server
HDFS + HBaseMapReduce
MySQL
기존 데이터 분석 시스템
S3Server
HDFS + HBaseMapReduce
MySQL
Upload log
기존 데이터 분석 시스템
S3Server
HDFS + HBaseMapReduce
MySQL
Download log
Bulk insert
기존 데이터 분석 시스템
S3Server
HDFS + HBaseMapReduce
MySQL
Analysis
기존 데이터 분석 시스템
S3Server
HDFS + HBaseMapReduce
MySQL
Report
기존 데이터 분석 시스템
• 매일 돌리는 주기적인 분석 작업과 On-demand 분석이 요구됨
• 서버가 Json 으로 로그를 남김
• {"who":{"address":"10.1xx.2xx.1xx","userId":"123456","userAgent":"Between 1.3.21
(SHV-E170K; Android 4.0.4; ko_KR)"},"what":
{"objectId":"12345_xxxx","parentId":"12345","objectType":"USER_THREAD_MESSAG
E","message":{"length":12}},"how":{"action":"ADD"},"when":{"timeMillis":
1356998401010},"version":1}
• 서버에서 하루에 한 번씩 S3로 업로드
• 회사 내에 데이터 분석용 HDFS + HBase + MapReduce 클러스터 존재
• 아침에 S3로부터 로그를 받아와서 HBase에 쏟아부음
• 분석을 돌려 결과를 MySQL을 저장함
기존 데이터 분석 시스템
• 처음엔 1시간 밖에 안 걸리고 좋았죠…
• 구성후 2년이 지나니 10시간도 넘게 걸림
• 지금부터 유저 수가 2배가 되면????
• 여러 대의 서버와 오픈 소스 스택을 직접 관리해야 함
• 갖가지 난관과 장애의 연속
갖가지 장애 - 하드웨어
• 하드 디스크
• 메모리
• 하둡 2.0.0 쯤에 corruption 이 퍼지는 버그 존재
• 메모리는 삼성!
• 네트워크
• 1G는 병목, 10G 는 비쌈
맨날 하드웨어 고치러
다녔습니다
내가 개발자인지 용팔인지
갖가지 장애 - 소프트웨어
• GC timeout
• HDFS/HBase/MapReduce
• 효과적인 메모리 할당의 어려움
• MySQL이 너무 느림
갖가지 난관 - 바다
• 아침에 S3로부터 로그 복사가 너무 오래 걸림
• 사장님 : 오늘 분석 결과 언제 나와요?
• 데이터 팀 : 로그 파일들 아직 바다 건너고 있는데요…
• 사장님 : …
대안 모색
• Elastic Search
• 데이터가 많으면 느리다는 얘기가…
• HDFS + MapReduce (HBase 제거 ?)
• 여전히 indexing 이 필요한데…
• Spark
• 바다 건너에서 hot 하다는데…
• 최대한 메모리를 활용하는 MapReduce
• 훨씬 다양한 API
• distinct, groupByKey, sort, join, …
• 재사용하는 데이터는 cache
• Map같은 연산은 lazy 하게 처리
VS
Data Result
MapReduce의 여러 단계 분석
Data Result
Spark에서의 여러 단계 분석
그래서 제가
Spark를 한 번 써봤습니다
Spark 장점
• 뛰어난 속도
• 2억 line count 에 30초 정도
• 안정성
• Spark만으로 충분해서 소프트웨어 간의 메모리 할당 이슈가 사
라짐
• Scale-out
• Ad-hoc query 가능 (REPL)
사실 전 MapReduce를
짜본 적이 없습니다
하지만 Spark는 돌릴 수
있습니다
하지만 Spark는 돌릴 수
있습니다
배울게 없던데요?
Spark 예제 - 메세지 개수 (1)
• val logs = sc.textFile(“s3n://my-logs/logs.2014-12-20*")
• val msgLogs = logs.filter(_.contains(“ADD_MSG”))
• val msgCount = msgLogs.count
Spark 예제 - 메세지 개수 (2)
• sc.textFile(“s3n://my-logs/logs.2014-12-20*”).filter(_.contains(“ADD_MSG”)).count
Spark 예제 - 메세지 보낸 유저수
• val logs = sc.textFile(“s3n://my-logs/logs.2014-12-20*”)
• val msgLogs = logs.filter(_.contains(“ADD_MSG”))
• val msgUsers = msgLogs.map(_.toActionLog.userId).distinct
• val msgUserCounts = msgUsers.count
PC 사용량 Cohort 구하기
• val logs = sc.textFile(“s3n://logs-between/log.2014-*")
• val pcAAs = logs.filter(_.contains(“Between-PC”)).map(_.toAA)
• val pcUserDates = pcAAs.map(log => (log.userId, format.format(log.when.timeMillis)).distinct
• val pcUserFirstDate = pcUserDates.groupByKey().map(kv => (kv._1, kv._2.toList.sorted.head))
• val pcUserFirstDateActiveDate = pcUserFirstDate.join(pcUserDates)
• val result = pcUserFirstDateActiveDate.map((_._2, 1)).reduceByKey(_+_).sortByKey(true)
Spark + AWS
자 이제 그럼 이제 진짜로
AWS에서 운영되는
Spark 분석 시스템을 만들어 봅시다
Storage layer는
어떻게 하지?
로그는 어차피 S3에 있잖아?
S3를 그냥 쓰자
Spark + S3
• 로그를 저장해 주는 HDFS layer를 따로 운영하지 않아도 됨
• s3n / s3 file system을 통해서 Hadoop에 잘 integration 되어 있음
• S3 <-> EC2 간 데이터 전송이 무료!
Spark + S3
• EC2에서 S3의 접근 속도도 좋음
• r3.8xlarge (10GB NIC) 에서 200~330MBytes/sec 나옴
Spark + S3
• Storage layer의 fan-out 을 걱정할 필요가 없음
• 직접 Storage layer를 운영한다면, 동시에 다수의 Spark cluster가 로그
에 접근할 때는 throughput에 병목이 생길 수 밖에 없음
• S3에서는 이러한 문제를 어느 정도 해결해 줌
Spark cluster 1 Spark cluster 2Log S3
Spark + EC2
• 필요할 때 cluster 크기를 키우거나 추가적인 cluster를 띄울 수 있다
• 여러 개의 분석을 필요할 경우 동시에 돌릴 수 있다
• 동시에 돌릴 수 있으면, 가격은 유지하면서 모든 분석이 끝나는 시간을
앞당길 수 있다.
• 같은 작업에 많은 EC2 instance를 사용하더라도 결국 같은 비용
Spark + R3 instance
• R3 instance
• 최근에 출시된, 메모리 optimized instance
• 메모리 244GB ( r3.8xlarge기준 )
• 320GB SSD x 2
• Shuffle 결과 임시 저장할 때 유리함
• Spark에 최적화된 instance type
Spark + Placement Group
• Placement Group
• instance 간의 network latency가 낮아짐
• wide-dependency shuffle operation에서 유리함
Spark + AWS 데이터 분석 시스템
Log bucket
On-demand
Spark Cluster 1
On-demand
Spark Cluster 2
Daily Analysis
Spark Cluster
Placement Group
Zeppelin / Dashboard Users
Spark로 옮긴 후 …
• 하루치 분석 10시간 -> 1시간 내외로 감소
• 한 번 Cache 해서 iterative 하게 돌 수 있음
• 하드웨어 관리와 여러 스택의 소프트웨어 관리의 괴로움에서 벗어남
• HDFS/HBase/MapReduce -> Spark
• In-house cluster에 비해서 순수 비용은 비슷하거나 다소 비쌀듯
• 훨씬 다양한 시도들이 가능해 짐
Spark로 옮긴 후 …
• 1년치 데이터에 대해서 분석을 해보고 싶어!
• 과거에는 당일 분석을 중단시키면서 오래 걸리는 분석을 돌리기 어려움
• 현재는 당일 분석과 시간이 오래 걸리는 분석을 동시에 실행 가능
• 비트윈의 버그/이슈 추적에 큰 도움이 됨
• 어떤 유저가 앱이 로그아웃 되었다는 데 이유를 모르겠다
• 서버의 버그 + 유저의 3달 전의 행동에 의해서 생긴 문제
• 3달 치의 해당 유저의 행동 로그와 Exception 로그를 비교 분석하여 원인 발견
• 진입 장벽이 낮아져 더 많은 개발 팀원들이 데이터 분석에 관심을 가지기 시작함
Spark 그 외의 Tip
Spark Tips
• Shuffle 할 때 생기는 임시 저장 파일들이 개수가 엄청 많이 생길 수 있음
• 디스크는 남는데 inode 가 모자란 사태 발생
• mkfs.ext4 -i 4096 같은 옵션으로 커버
• mdadm 으로 SSD 두 개 묶어서 Spark temp 폴더에 mount
Spark Tips
• S3 에서 읽어와서 처리할 경우 파일이 비슷한 크기로 쪼개져 있는 게 유리
• 크기가 100, 100, 100, 20, 20 인 로그들로 저장되어 있는 것보다 10
짜리 32개가 있는게 유리함
• core를 모두 사용하자
• 원래 서버에서 하루에 한 번 로그를 업로드하던 것을 한 시간에 한 번으로
변경함
Spark Tips - Zeppelin
• 데이터 분석을 위한 웹기반 노트북 + 데이터 visualization tool
• Spark 및 Spark SQL과 연동해서 편리하게 데이터 처리, 그래프 그리는 작
업 등을 진행 할 수 있음
• 따로 대쉬보드를 만들 필요가 없어짐
• Tajo등 다른 데이터 분석 툴과의 통합도 진행중
Spark Tips - Zeppelin
결론
• Spark + S3 + R3 instance 조합으로
• 처리 용량을 늘리거나 줄일 수 있는 자유도가 있고
• 직접 운영하지 않아도 되는
• 10배 이상 빠른 분석 시스템을 만들었습니다
결론
Q & A

More Related Content

What's hot

로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법Jeongsang Baek
 
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인Jae Young Park
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들Brian Hong
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
 
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장Dylan Ko
 
성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게Seongyun Byeon
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)Jaikwang Lee
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWSMatthew (정재화)
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기Brian Hong
 
Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101DaeMyung Kang
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 introSeongyun Byeon
 
실시간 이상탐지를 위한 머신러닝 모델에 Druid _ Imply 활용하기
실시간 이상탐지를 위한 머신러닝 모델에 Druid _ Imply 활용하기실시간 이상탐지를 위한 머신러닝 모델에 Druid _ Imply 활용하기
실시간 이상탐지를 위한 머신러닝 모델에 Druid _ Imply 활용하기Kee Hoon Lee
 
elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리Junyi Song
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)Brian Hong
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advanceDaeMyung Kang
 
webservice scaling for newbie
webservice scaling for newbiewebservice scaling for newbie
webservice scaling for newbieDaeMyung Kang
 
글쓰는 개발자 모임, 글또
글쓰는 개발자 모임, 글또글쓰는 개발자 모임, 글또
글쓰는 개발자 모임, 글또Seongyun Byeon
 
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDBNAVER D2
 
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출 NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출 정주 김
 
데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...
데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...
데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...Amazon Web Services Korea
 

What's hot (20)

로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
[DevGround] 린하게 구축하는 스타트업 데이터파이프라인
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
 
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
 
성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
Data Engineering 101
Data Engineering 101Data Engineering 101
Data Engineering 101
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro
 
실시간 이상탐지를 위한 머신러닝 모델에 Druid _ Imply 활용하기
실시간 이상탐지를 위한 머신러닝 모델에 Druid _ Imply 활용하기실시간 이상탐지를 위한 머신러닝 모델에 Druid _ Imply 활용하기
실시간 이상탐지를 위한 머신러닝 모델에 Druid _ Imply 활용하기
 
elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리elasticsearch_적용 및 활용_정리
elasticsearch_적용 및 활용_정리
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advance
 
webservice scaling for newbie
webservice scaling for newbiewebservice scaling for newbie
webservice scaling for newbie
 
글쓰는 개발자 모임, 글또
글쓰는 개발자 모임, 글또글쓰는 개발자 모임, 글또
글쓰는 개발자 모임, 글또
 
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
[124]네이버에서 사용되는 여러가지 Data Platform, 그리고 MongoDB
 
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출 NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
NDC 2016 김정주 - 기계학습을 활용한 게임어뷰징 검출
 
데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...
데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...
데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...
 

Similar to 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)_스파크 사용자 모임_20141106SangHoon Lee
 
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석Amazon Web Services Korea
 
AWS 활용한 Data Lake 구성하기
AWS 활용한 Data Lake 구성하기AWS 활용한 Data Lake 구성하기
AWS 활용한 Data Lake 구성하기Nak Joo Kwon
 
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWSGruter
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)Channy Yun
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorialMinho Kim
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습동현 강
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들Woong Seok Kang
 
Spark machine learning & deep learning
Spark machine learning & deep learningSpark machine learning & deep learning
Spark machine learning & deep learninghoondong kim
 
[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영NAVER D2
 
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Web Services Korea
 
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...SuseongPark
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability흥배 최
 
S3 Select를 통한 빠른 데이터 분석하기 - 트랙2, Community Day 2018 re:Invent 특집
S3 Select를 통한 빠른 데이터 분석하기 - 트랙2, Community Day 2018 re:Invent 특집S3 Select를 통한 빠른 데이터 분석하기 - 트랙2, Community Day 2018 re:Invent 특집
S3 Select를 통한 빠른 데이터 분석하기 - 트랙2, Community Day 2018 re:Invent 특집AWSKRUG - AWS한국사용자모임
 
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?nexusz99
 
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
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017Amazon Web Services Korea
 
AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3Keeyong Han
 
SQream DB, GPU-accelerated data warehouse
SQream DB, GPU-accelerated data warehouseSQream DB, GPU-accelerated data warehouse
SQream DB, GPU-accelerated data warehouseNAVER Engineering
 
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처hoondong kim
 

Similar to Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기 (20)

Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
 
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
 
AWS 활용한 Data Lake 구성하기
AWS 활용한 Data Lake 구성하기AWS 활용한 Data Lake 구성하기
AWS 활용한 Data Lake 구성하기
 
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorial
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
 
Spark machine learning & deep learning
Spark machine learning & deep learningSpark machine learning & deep learning
Spark machine learning & deep learning
 
[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영
 
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
 
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...
Spark+Cassandra Data pipeline optimazation at recommend system for recommend ...
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability
 
S3 Select를 통한 빠른 데이터 분석하기 - 트랙2, Community Day 2018 re:Invent 특집
S3 Select를 통한 빠른 데이터 분석하기 - 트랙2, Community Day 2018 re:Invent 특집S3 Select를 통한 빠른 데이터 분석하기 - 트랙2, Community Day 2018 re:Invent 특집
S3 Select를 통한 빠른 데이터 분석하기 - 트랙2, Community Day 2018 re:Invent 특집
 
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
Dropbox와 같은 시스템은 파일을 어떻게 저장할까?
 
AWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep DiveAWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep Dive
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
 
AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3AWS의 하둡 관련 서비스 - EMR/S3
AWS의 하둡 관련 서비스 - EMR/S3
 
SQream DB, GPU-accelerated data warehouse
SQream DB, GPU-accelerated data warehouseSQream DB, GPU-accelerated data warehouse
SQream DB, GPU-accelerated data warehouse
 
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
 

More from AWSKRUG - AWS한국사용자모임

IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
보안을 위한 AWS Network 구성 - 우수연 (AUSG) :: AWS Community Day Online 2021
보안을 위한 AWS Network 구성 - 우수연 (AUSG) :: AWS Community Day Online 2021보안을 위한 AWS Network 구성 - 우수연 (AUSG) :: AWS Community Day Online 2021
보안을 위한 AWS Network 구성 - 우수연 (AUSG) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...AWSKRUG - AWS한국사용자모임
 
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
스타트업 나홀로 데이터 엔지니어: 데이터 분석 환경 구축기 - 천지은 (Tappytoon) :: AWS Community Day Onlin...
스타트업 나홀로 데이터 엔지니어: 데이터 분석 환경 구축기 - 천지은 (Tappytoon) :: AWS Community Day Onlin...스타트업 나홀로 데이터 엔지니어: 데이터 분석 환경 구축기 - 천지은 (Tappytoon) :: AWS Community Day Onlin...
스타트업 나홀로 데이터 엔지니어: 데이터 분석 환경 구축기 - 천지은 (Tappytoon) :: AWS Community Day Onlin...AWSKRUG - AWS한국사용자모임
 
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021
복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021
복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
복잡한 기존 시스템에 피쳐 애드업 후기 - 김태웅(브랜디) :: AWS Community Day Online 2021
복잡한 기존 시스템에 피쳐 애드업 후기 - 김태웅(브랜디) :: AWS Community Day Online 2021복잡한 기존 시스템에 피쳐 애드업 후기 - 김태웅(브랜디) :: AWS Community Day Online 2021
복잡한 기존 시스템에 피쳐 애드업 후기 - 김태웅(브랜디) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...
EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...
EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...AWSKRUG - AWS한국사용자모임
 
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
[AWS Hero 스페셜] 서버리스 기반 검색 서비스 구축하기 - 이상현(스마일벤처스) :: AWS Community Day Online ...
[AWS Hero 스페셜] 서버리스 기반 검색 서비스 구축하기 - 이상현(스마일벤처스) :: AWS Community Day Online ...[AWS Hero 스페셜] 서버리스 기반 검색 서비스 구축하기 - 이상현(스마일벤처스) :: AWS Community Day Online ...
[AWS Hero 스페셜] 서버리스 기반 검색 서비스 구축하기 - 이상현(스마일벤처스) :: AWS Community Day Online ...AWSKRUG - AWS한국사용자모임
 
초기 스타트업의 AWS - 김지훈(투어라이브) :: AWS Community Day Online 2020
초기 스타트업의 AWS - 김지훈(투어라이브) :: AWS Community Day Online 2020초기 스타트업의 AWS - 김지훈(투어라이브) :: AWS Community Day Online 2020
초기 스타트업의 AWS - 김지훈(투어라이브) :: AWS Community Day Online 2020AWSKRUG - AWS한국사용자모임
 
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...AWSKRUG - AWS한국사용자모임
 
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020AWSKRUG - AWS한국사용자모임
 
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020AWSKRUG - AWS한국사용자모임
 
엔터프라이즈 기업을 위한 Digital 플랫폼 구축 사례 - 권낙주(SK C&C) :: AWS Community Day Online 2020
엔터프라이즈 기업을 위한 Digital 플랫폼 구축 사례 - 권낙주(SK C&C)  :: AWS Community Day Online 2020엔터프라이즈 기업을 위한 Digital 플랫폼 구축 사례 - 권낙주(SK C&C)  :: AWS Community Day Online 2020
엔터프라이즈 기업을 위한 Digital 플랫폼 구축 사례 - 권낙주(SK C&C) :: AWS Community Day Online 2020AWSKRUG - AWS한국사용자모임
 

More from AWSKRUG - AWS한국사용자모임 (20)

IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
 
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
Docker를 활용한 손쉬운 ECS 활용기 - 김민태 (AUSG) :: AWS Community Day Online 2021
 
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
AWS와 함께하는 무중단 배포 파이프라인 개선기 - 황성찬 (AUSG) :: AWS Community Day Online 2021
 
보안을 위한 AWS Network 구성 - 우수연 (AUSG) :: AWS Community Day Online 2021
보안을 위한 AWS Network 구성 - 우수연 (AUSG) :: AWS Community Day Online 2021보안을 위한 AWS Network 구성 - 우수연 (AUSG) :: AWS Community Day Online 2021
보안을 위한 AWS Network 구성 - 우수연 (AUSG) :: AWS Community Day Online 2021
 
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021
 
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
Athena & Step Function 으로 통계 파이프라인 구축하기 - 변규현 (당근마켓) :: AWS Community Day Onl...
 
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021
 
스타트업 나홀로 데이터 엔지니어: 데이터 분석 환경 구축기 - 천지은 (Tappytoon) :: AWS Community Day Onlin...
스타트업 나홀로 데이터 엔지니어: 데이터 분석 환경 구축기 - 천지은 (Tappytoon) :: AWS Community Day Onlin...스타트업 나홀로 데이터 엔지니어: 데이터 분석 환경 구축기 - 천지은 (Tappytoon) :: AWS Community Day Onlin...
스타트업 나홀로 데이터 엔지니어: 데이터 분석 환경 구축기 - 천지은 (Tappytoon) :: AWS Community Day Onlin...
 
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
커뮤니티 빌더를 아시나요? - 윤평호(AWSKRUG) :: AWS Community Day Online 2021
 
복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021
복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021
복잡한 권한신청문제 ConsoleMe로 해결하기 - 손건 (AB180) :: AWS Community Day Online 2021
 
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
 
복잡한 기존 시스템에 피쳐 애드업 후기 - 김태웅(브랜디) :: AWS Community Day Online 2021
복잡한 기존 시스템에 피쳐 애드업 후기 - 김태웅(브랜디) :: AWS Community Day Online 2021복잡한 기존 시스템에 피쳐 애드업 후기 - 김태웅(브랜디) :: AWS Community Day Online 2021
복잡한 기존 시스템에 피쳐 애드업 후기 - 김태웅(브랜디) :: AWS Community Day Online 2021
 
EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...
EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...
EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...
 
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
 
[AWS Hero 스페셜] 서버리스 기반 검색 서비스 구축하기 - 이상현(스마일벤처스) :: AWS Community Day Online ...
[AWS Hero 스페셜] 서버리스 기반 검색 서비스 구축하기 - 이상현(스마일벤처스) :: AWS Community Day Online ...[AWS Hero 스페셜] 서버리스 기반 검색 서비스 구축하기 - 이상현(스마일벤처스) :: AWS Community Day Online ...
[AWS Hero 스페셜] 서버리스 기반 검색 서비스 구축하기 - 이상현(스마일벤처스) :: AWS Community Day Online ...
 
초기 스타트업의 AWS - 김지훈(투어라이브) :: AWS Community Day Online 2020
초기 스타트업의 AWS - 김지훈(투어라이브) :: AWS Community Day Online 2020초기 스타트업의 AWS - 김지훈(투어라이브) :: AWS Community Day Online 2020
초기 스타트업의 AWS - 김지훈(투어라이브) :: AWS Community Day Online 2020
 
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
 
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
goployer, 코드 기반의 배포 도구 - 송주영 (beNX) :: AWS Community Day 2020
 
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
 
엔터프라이즈 기업을 위한 Digital 플랫폼 구축 사례 - 권낙주(SK C&C) :: AWS Community Day Online 2020
엔터프라이즈 기업을 위한 Digital 플랫폼 구축 사례 - 권낙주(SK C&C)  :: AWS Community Day Online 2020엔터프라이즈 기업을 위한 Digital 플랫폼 구축 사례 - 권낙주(SK C&C)  :: AWS Community Day Online 2020
엔터프라이즈 기업을 위한 Digital 플랫폼 구축 사례 - 권낙주(SK C&C) :: AWS Community Day Online 2020
 

Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기

  • 1. Spark + S3 + R3 을 이용한 데이터 분석 시스템 만들기 VCNC 개발팀 김명보 AWS 한국 유저 그룹 (#awskrug) 2014.12.20
  • 2. 발표자 소개 • 김명보 • VCNC에서 비트윈을 개발하고 있는 개발자 • 서버팀과 데이터 팀에서 잡다한 것들을 고치는 중 • 회사에서 AWS에 돈을 쓰는 것을 담당
  • 3. 비트윈 • 커플들을 위한 모바일 서비스 • 아이폰, 안드로이드 어플리케이션 제공 • 채팅, 기념일, 사진, 메모, 캘린더 기능 제공 • 전 세계에서 1000만+ 다운로드 (as of 2014.12) • http://between.us • http://engineering.vcnc.co.kr
  • 6. 기존 데이터 분석 시스템 S3Server HDFS + HBaseMapReduce MySQL
  • 7. 기존 데이터 분석 시스템 S3Server HDFS + HBaseMapReduce MySQL Upload log
  • 8. 기존 데이터 분석 시스템 S3Server HDFS + HBaseMapReduce MySQL Download log Bulk insert
  • 9. 기존 데이터 분석 시스템 S3Server HDFS + HBaseMapReduce MySQL Analysis
  • 10. 기존 데이터 분석 시스템 S3Server HDFS + HBaseMapReduce MySQL Report
  • 11. 기존 데이터 분석 시스템 • 매일 돌리는 주기적인 분석 작업과 On-demand 분석이 요구됨 • 서버가 Json 으로 로그를 남김 • {"who":{"address":"10.1xx.2xx.1xx","userId":"123456","userAgent":"Between 1.3.21 (SHV-E170K; Android 4.0.4; ko_KR)"},"what": {"objectId":"12345_xxxx","parentId":"12345","objectType":"USER_THREAD_MESSAG E","message":{"length":12}},"how":{"action":"ADD"},"when":{"timeMillis": 1356998401010},"version":1} • 서버에서 하루에 한 번씩 S3로 업로드 • 회사 내에 데이터 분석용 HDFS + HBase + MapReduce 클러스터 존재 • 아침에 S3로부터 로그를 받아와서 HBase에 쏟아부음 • 분석을 돌려 결과를 MySQL을 저장함
  • 12. 기존 데이터 분석 시스템 • 처음엔 1시간 밖에 안 걸리고 좋았죠… • 구성후 2년이 지나니 10시간도 넘게 걸림 • 지금부터 유저 수가 2배가 되면???? • 여러 대의 서버와 오픈 소스 스택을 직접 관리해야 함 • 갖가지 난관과 장애의 연속
  • 13. 갖가지 장애 - 하드웨어 • 하드 디스크 • 메모리 • 하둡 2.0.0 쯤에 corruption 이 퍼지는 버그 존재 • 메모리는 삼성! • 네트워크 • 1G는 병목, 10G 는 비쌈
  • 16. 갖가지 장애 - 소프트웨어 • GC timeout • HDFS/HBase/MapReduce • 효과적인 메모리 할당의 어려움 • MySQL이 너무 느림
  • 17. 갖가지 난관 - 바다 • 아침에 S3로부터 로그 복사가 너무 오래 걸림 • 사장님 : 오늘 분석 결과 언제 나와요? • 데이터 팀 : 로그 파일들 아직 바다 건너고 있는데요… • 사장님 : …
  • 18. 대안 모색 • Elastic Search • 데이터가 많으면 느리다는 얘기가… • HDFS + MapReduce (HBase 제거 ?) • 여전히 indexing 이 필요한데… • Spark • 바다 건너에서 hot 하다는데…
  • 19. • 최대한 메모리를 활용하는 MapReduce • 훨씬 다양한 API • distinct, groupByKey, sort, join, … • 재사용하는 데이터는 cache • Map같은 연산은 lazy 하게 처리
  • 20. VS Data Result MapReduce의 여러 단계 분석 Data Result Spark에서의 여러 단계 분석
  • 21. 그래서 제가 Spark를 한 번 써봤습니다
  • 22.
  • 23. Spark 장점 • 뛰어난 속도 • 2억 line count 에 30초 정도 • 안정성 • Spark만으로 충분해서 소프트웨어 간의 메모리 할당 이슈가 사 라짐 • Scale-out • Ad-hoc query 가능 (REPL)
  • 24. 사실 전 MapReduce를 짜본 적이 없습니다
  • 25. 하지만 Spark는 돌릴 수 있습니다
  • 26. 하지만 Spark는 돌릴 수 있습니다 배울게 없던데요?
  • 27. Spark 예제 - 메세지 개수 (1) • val logs = sc.textFile(“s3n://my-logs/logs.2014-12-20*") • val msgLogs = logs.filter(_.contains(“ADD_MSG”)) • val msgCount = msgLogs.count
  • 28. Spark 예제 - 메세지 개수 (2) • sc.textFile(“s3n://my-logs/logs.2014-12-20*”).filter(_.contains(“ADD_MSG”)).count
  • 29. Spark 예제 - 메세지 보낸 유저수 • val logs = sc.textFile(“s3n://my-logs/logs.2014-12-20*”) • val msgLogs = logs.filter(_.contains(“ADD_MSG”)) • val msgUsers = msgLogs.map(_.toActionLog.userId).distinct • val msgUserCounts = msgUsers.count
  • 30. PC 사용량 Cohort 구하기 • val logs = sc.textFile(“s3n://logs-between/log.2014-*") • val pcAAs = logs.filter(_.contains(“Between-PC”)).map(_.toAA) • val pcUserDates = pcAAs.map(log => (log.userId, format.format(log.when.timeMillis)).distinct • val pcUserFirstDate = pcUserDates.groupByKey().map(kv => (kv._1, kv._2.toList.sorted.head)) • val pcUserFirstDateActiveDate = pcUserFirstDate.join(pcUserDates) • val result = pcUserFirstDateActiveDate.map((_._2, 1)).reduceByKey(_+_).sortByKey(true)
  • 32. 자 이제 그럼 이제 진짜로 AWS에서 운영되는 Spark 분석 시스템을 만들어 봅시다
  • 34. 로그는 어차피 S3에 있잖아? S3를 그냥 쓰자
  • 35. Spark + S3 • 로그를 저장해 주는 HDFS layer를 따로 운영하지 않아도 됨 • s3n / s3 file system을 통해서 Hadoop에 잘 integration 되어 있음 • S3 <-> EC2 간 데이터 전송이 무료!
  • 36. Spark + S3 • EC2에서 S3의 접근 속도도 좋음 • r3.8xlarge (10GB NIC) 에서 200~330MBytes/sec 나옴
  • 37. Spark + S3 • Storage layer의 fan-out 을 걱정할 필요가 없음 • 직접 Storage layer를 운영한다면, 동시에 다수의 Spark cluster가 로그 에 접근할 때는 throughput에 병목이 생길 수 밖에 없음 • S3에서는 이러한 문제를 어느 정도 해결해 줌 Spark cluster 1 Spark cluster 2Log S3
  • 38. Spark + EC2 • 필요할 때 cluster 크기를 키우거나 추가적인 cluster를 띄울 수 있다 • 여러 개의 분석을 필요할 경우 동시에 돌릴 수 있다 • 동시에 돌릴 수 있으면, 가격은 유지하면서 모든 분석이 끝나는 시간을 앞당길 수 있다. • 같은 작업에 많은 EC2 instance를 사용하더라도 결국 같은 비용
  • 39. Spark + R3 instance • R3 instance • 최근에 출시된, 메모리 optimized instance • 메모리 244GB ( r3.8xlarge기준 ) • 320GB SSD x 2 • Shuffle 결과 임시 저장할 때 유리함 • Spark에 최적화된 instance type
  • 40. Spark + Placement Group • Placement Group • instance 간의 network latency가 낮아짐 • wide-dependency shuffle operation에서 유리함
  • 41. Spark + AWS 데이터 분석 시스템 Log bucket On-demand Spark Cluster 1 On-demand Spark Cluster 2 Daily Analysis Spark Cluster Placement Group Zeppelin / Dashboard Users
  • 42. Spark로 옮긴 후 … • 하루치 분석 10시간 -> 1시간 내외로 감소 • 한 번 Cache 해서 iterative 하게 돌 수 있음 • 하드웨어 관리와 여러 스택의 소프트웨어 관리의 괴로움에서 벗어남 • HDFS/HBase/MapReduce -> Spark • In-house cluster에 비해서 순수 비용은 비슷하거나 다소 비쌀듯 • 훨씬 다양한 시도들이 가능해 짐
  • 43. Spark로 옮긴 후 … • 1년치 데이터에 대해서 분석을 해보고 싶어! • 과거에는 당일 분석을 중단시키면서 오래 걸리는 분석을 돌리기 어려움 • 현재는 당일 분석과 시간이 오래 걸리는 분석을 동시에 실행 가능 • 비트윈의 버그/이슈 추적에 큰 도움이 됨 • 어떤 유저가 앱이 로그아웃 되었다는 데 이유를 모르겠다 • 서버의 버그 + 유저의 3달 전의 행동에 의해서 생긴 문제 • 3달 치의 해당 유저의 행동 로그와 Exception 로그를 비교 분석하여 원인 발견 • 진입 장벽이 낮아져 더 많은 개발 팀원들이 데이터 분석에 관심을 가지기 시작함
  • 45. Spark Tips • Shuffle 할 때 생기는 임시 저장 파일들이 개수가 엄청 많이 생길 수 있음 • 디스크는 남는데 inode 가 모자란 사태 발생 • mkfs.ext4 -i 4096 같은 옵션으로 커버 • mdadm 으로 SSD 두 개 묶어서 Spark temp 폴더에 mount
  • 46. Spark Tips • S3 에서 읽어와서 처리할 경우 파일이 비슷한 크기로 쪼개져 있는 게 유리 • 크기가 100, 100, 100, 20, 20 인 로그들로 저장되어 있는 것보다 10 짜리 32개가 있는게 유리함 • core를 모두 사용하자 • 원래 서버에서 하루에 한 번 로그를 업로드하던 것을 한 시간에 한 번으로 변경함
  • 47. Spark Tips - Zeppelin • 데이터 분석을 위한 웹기반 노트북 + 데이터 visualization tool • Spark 및 Spark SQL과 연동해서 편리하게 데이터 처리, 그래프 그리는 작 업 등을 진행 할 수 있음 • 따로 대쉬보드를 만들 필요가 없어짐 • Tajo등 다른 데이터 분석 툴과의 통합도 진행중
  • 48. Spark Tips - Zeppelin
  • 50. • Spark + S3 + R3 instance 조합으로 • 처리 용량을 늘리거나 줄일 수 있는 자유도가 있고 • 직접 운영하지 않아도 되는 • 10배 이상 빠른 분석 시스템을 만들었습니다 결론
  • 51.
  • 52. Q & A