[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 1부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Yongho Ha
요즘 Hadoop 보다 더 뜨고 있는 Spark.
그 Spark의 핵심을 이해하기 위해서는 핵심 자료구조인 Resilient Distributed Datasets (RDD)를 이해하는 것이 필요합니다.
RDD가 어떻게 동작하는지, 원 논문을 리뷰하며 살펴보도록 합시다.
http://www.cs.berkeley.edu/~matei/papers/2012/sigmod_shark_demo.pdf
Little Big Data #1 다양한 사람들의 데이터 사이언스 이야기에서 발표한 자료입니다
궁금한 것은 언제나 문의주세요 :)
행사 후기는 https://zzsza.github.io/etc/2018/04/21/little-big-data/ 에 있습니다!
(2018.5 내용 추가) 현재 회사가 없으니, 제게 관심있으신 분들도 연락 환영합니다 :)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 1부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Yongho Ha
요즘 Hadoop 보다 더 뜨고 있는 Spark.
그 Spark의 핵심을 이해하기 위해서는 핵심 자료구조인 Resilient Distributed Datasets (RDD)를 이해하는 것이 필요합니다.
RDD가 어떻게 동작하는지, 원 논문을 리뷰하며 살펴보도록 합시다.
http://www.cs.berkeley.edu/~matei/papers/2012/sigmod_shark_demo.pdf
Little Big Data #1 다양한 사람들의 데이터 사이언스 이야기에서 발표한 자료입니다
궁금한 것은 언제나 문의주세요 :)
행사 후기는 https://zzsza.github.io/etc/2018/04/21/little-big-data/ 에 있습니다!
(2018.5 내용 추가) 현재 회사가 없으니, 제게 관심있으신 분들도 연락 환영합니다 :)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 2부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장Dylan Ko
Gonnector(고넥터) 고영혁 대표가 주최한 스타트업 데이터 활용 세미나 '우리가 데이터를 쓰는 법' 의 세 번째 발표 자료
세미나 : 우리가 데이터를 쓰는 법 (How We Use Data)
일시 : 2016년 4월 12일 화요일 10:00 ~ 18:00
장소 : 마루180 (Maru180) B1 Think 홀
제목 : 모바일 게임 로그 데이터 분석 이야기
연사 : 엔터메이트 공신배 팀장
한빛데브그라운드에서 발표했던 내용입니다.
발표 영상 : https://youtu.be/ohpfSLf0V3Y
--
스타트업 비즈니스에서 데이터를 활용한 전략 수립과 의사결정은 필수적인 요소입니다. 서비스 운영 데이터에서부터 다양한 고객의 행동 로그, 소셜 미디어 데이터까지 다양한 데이터를 모두 모아 분석 환경을 구축하기 위해서는 많은 준비와 고민이 필요합니다. 스타트업에서 빠른 속도와 최소한의 비용, 다양한 분석 Tool들과 연동되는 Data Pipeline, Data Lake, Data Warehouse 구축 경험기를 공유하고자 합니다. 이 과정을 통해 애널리틱스 파이프라인을 구축 과정과 S3, Glue, Athena,EMR, Quicksight와 같은 서버리스 애널리틱스 서비스에 대한 구축 사례를 확인하실 수 있습니다.
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 2부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장Dylan Ko
Gonnector(고넥터) 고영혁 대표가 주최한 스타트업 데이터 활용 세미나 '우리가 데이터를 쓰는 법' 의 세 번째 발표 자료
세미나 : 우리가 데이터를 쓰는 법 (How We Use Data)
일시 : 2016년 4월 12일 화요일 10:00 ~ 18:00
장소 : 마루180 (Maru180) B1 Think 홀
제목 : 모바일 게임 로그 데이터 분석 이야기
연사 : 엔터메이트 공신배 팀장
한빛데브그라운드에서 발표했던 내용입니다.
발표 영상 : https://youtu.be/ohpfSLf0V3Y
--
스타트업 비즈니스에서 데이터를 활용한 전략 수립과 의사결정은 필수적인 요소입니다. 서비스 운영 데이터에서부터 다양한 고객의 행동 로그, 소셜 미디어 데이터까지 다양한 데이터를 모두 모아 분석 환경을 구축하기 위해서는 많은 준비와 고민이 필요합니다. 스타트업에서 빠른 속도와 최소한의 비용, 다양한 분석 Tool들과 연동되는 Data Pipeline, Data Lake, Data Warehouse 구축 경험기를 공유하고자 합니다. 이 과정을 통해 애널리틱스 파이프라인을 구축 과정과 S3, Glue, Athena,EMR, Quicksight와 같은 서버리스 애널리틱스 서비스에 대한 구축 사례를 확인하실 수 있습니다.
빅데이터 개념 부터 시작해서 빅데이터 분석 플랫폼의 출현(hadoop)과 스파크의 등장배경까지 풀어서 작성된 spark 소개 자료 입니다.
스파크는 RDD에 대한 개념과 spark SQL 라이브러리에 대한 자료가 조금 자세히 설명 되어있습니다. (텅스텐엔진, 카탈리스트 옵티마이져에 대한 간략한 설명이 있습니다.)
마지막에는 간단한 설치 및 interactive 분석 실습자료가 포함되어 있습니다.
원본 ppt 를 공개해 두었으니 언제 어디서든 필요에 따라 변형하여 사용하시되 출처만 잘 남겨주시면 감사드리겠습니다.
다른 슬라이드나, 블로그에서 사용된 그림과 참고한 자료들은 작게 출처를 표시해두었는데, 본 ppt의 초기버전을 작성하면서 찾았던 일부 자료들은 출처가 불분명한 상태입니다. 자료 출처를 알려주시면 반영하여 수정해 두도록하겠습니다. (제보 부탁드립니다!)
Spark machine learning & deep learninghoondong kim
Spark Machine Learning and Deep Learning Deep Dive.
Scenarios that use Spark hybrid with other data analytics tools (MS R on Spark, Tensorflow(keras) with Spark, Scikit-learn with Spark, etc)
드랍박스, nDrive 등과 같은 클라우드 스토리지 서비스들은 데이터를 어떻게 저장하는지에 대한 이론적 내용과 실제 구현 내용을 살펴봅니다. 이 발표에서는 OpenStack 의 swift라는 Object Storage 를 이용하여 이론이 어떻게 구현되어있는지 알아봅니다.
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study
이 세션에서는 데브시스터즈의 Case Study를 통하여 Data Lake를 만들고 사용하는데 있어 요구 되는 사항들에 대해 공유합니다. 여러 목적에 맞는 데이터를 전달하기 위해 AWS 를 활용하여 Data Lake 를 구축하게된 계기와 실제 구축 작업을 하면서 경험하게 된 것들에 대해 말씀드리고자 합니다. 기존 인프라 구조 대비 효율성 및 비용적 측면을 소개해드리고, 빅데이터를 이용한 부서별 데이터 세분화를 진행할 때 어떠한 Architecture가 사용되었는지 소개드리고자 합니다.
자연어 처리 ML모델을 활용한 이커머스 문제 해결하기 - 진현두 (카카오스타일) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
이커머스에서 가장 중요한 사용자 리뷰! 사용자 리뷰 내 특정 키워드 관련 표현을 스마트하게 찾고, 하이라이팅 정보를 제공하는 ML모델 개발하여 서비스에 반영하였습니다. 복잡한 전처리와 모델링전반의 프로세스를 Amazon SageMaker + Custom Docker 로 구현 방법을 소개합니다.
자바개발자가 최대한 빠르게 서비스를 오픈하는 방법 - 최진환 (드라마앤컴퍼니) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
사이드프로젝트를 진행하면서 겪은 다양한 인프라 구축 노하우를 소개합니다.왜 EKS가 아닌 Elastic Beanstalk를 사용했는지, Codepipeline을 이용한 깃헙에서 배포까지의 플로우, AWS ChatBot을 사용한 모니터링과 CodeBuild로 빌드하기 등을 소개합니다.
EKS에서 Opentelemetry로 코드실행 모니터링하기 - 신재현 (인덴트코퍼레이션) :: AWS Community Day Online...AWSKRUG - AWS한국사용자모임
EKS환경에서 Opentelemetry와 Jaeger를 활용하여 서버의 코드가 잘 동작하는지 어떤로직에서 문제가 발생했는지 모니터링 하는 방법을 알아봅니다. 마지막으로 Grafana를 이용해 쉽게 원하는 코드를 조회 하는 방법도 실습해볼 예정입니다. K8S를 모르셔도 참석할 수 있습니다.
엔터프라이즈 기업을 위한 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 는 비쌈
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)
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등 다른 데이터 분석 툴과의 통합도 진행중