Realtime Big data Anaytics and Exampes of Daum (2013)
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Realtime Big data Anaytics and Exampes of Daum (2013)

  • 12,840 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
12,840
On Slideshare
11,743
From Embeds
1,097
Number of Embeds
15

Actions

Shares
Downloads
462
Comments
2
Likes
88

Embeds 1,097

http://www.scoop.it 575
http://www.smallake.kr 219
http://mysqltag.tistory.com 120
http://tedwon.com 59
http://causality101.tistory.com 31
https://twitter.com 30
http://sam.hanatour.co.kr 25
http://data-driven.tistory.com 16
http://blackuntech.tistory.com 11
http://ksseono.tumblr.com 6
http://www.party09.com 1
https://www.google.co.kr 1
https://plus.google.com 1
https://www.facebook.com 1
http://allenjeon.tistory.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 실시간 빅 데이터 기술 현황 및 Daum 활용 사례 소개 윤석찬 다음커뮤니케이션 channy@daumcorp.com
  • 2. Agenda Daum의 대용량 분산 기술 – 대용량 스토리지 제공 (Tenth) – 폭증하는 소셜 데이터 (Santa/Wcache) 실시간 분석 기술 소개 및 동향 – 실시간 분석 및 SQL on Hadoop 기술 소개 Daum의 실시간 분석 활용 사례 – 미디어 다음 실시간 분석 사례 – 다음탑 실시간 분석 사례
  • 3. 옛날 이야기 Daum이 직면했던 두 가지 문제 빅데이터 기술의 발전은 도전적 환경의 결과!
  • 4. 1. 대용량 스토리지 제공 명실 상부한 국내 최대 저장용량 제공 중 per User 2004 2006 2012
  • 5. How to? Tenth(2005) 프로젝트 대부분 첨부 파일은 30일이 지나면 안본다? 오래된 파일은 값싼 스토리지에 저장해 두고 사용자가 원할때 빨리 찾아주면 되지 않을까? • 외부 분산 스토리지 기술    Google GFS (2003) Yahoo HDFS (2007) NHN OwFS (2010) 김남희(2008), Tenth: Daum의 대용량 분산 파일 시스템 소개 http://www.platformday.com/2008/files/tenth-daum.pdf
  • 6. Tenth vs. HDFS Tenth는 한메일, 카페 첨부 파일 등 대용량 파일을 저렴하게 저장하 기 위한 분산 파일 시스템으로 2005년 부터 개발 – 2006년 라이코스메일, 카페 도입 – 2007년 한메일 기가 용량 도입 – 2009년 동영상 업로드팜 도입 – 2010년 다음 클라우드 도입 2013 현재, 파일 800억개(Dual Backup), 30페타바이트 (Zipped) Tenth 비교 HDFS 2005 개발 시작 2006 C++ 구현 언어 Java 첨부 파일을 저장하기 위해 하나의 스토리지 처럼 이용 가능 이용 목적 분산 시스템에서 파일 저장 용 도로 활용 다중 (MySQL이용) 네임 노드 싱글 1~4MB (fixed chunks) 파일 형태 64MB (fixed blocks) 미지원 디렉토리 구조 지원함
  • 7. 2. 폭증하는 소셜 데이터 촛불집회 후 수 십만명이 동시에 글을 쓰면? 데이터베이스(RDBMS)는 과도한 쓰기(수정)를 하면 서버가 다운될 수 밖에 없다. 윤석찬(2008), 대통령 탄핵 청원으로 본 아고라의 기술적 도전 http://blog.creation.net/260
  • 8. How to? 분산 데이터 캐시 ① 글 조회수를 서버 메모리에 모아 두었다가 어느 정도 모이면 한꺼번에 업데이트하면 어떨까? 최범균(2008), EHCache를 이용한 Gaia 캐시 구현, http://javacan.tistory.com/123 ② DB 앞에 데이터 캐시 서버를 두면 어떨까? Pizza(2002) Santa(2008) Wcache(2010) 회사 내부에서 사용하는 인하우스 미들웨어로 JDBC 병목해 결, 데이터 캐시 서버 및 대용량 캐시 서버 팜 등으로 진화.
  • 9. Twitter도 다르지 않았다! 전 세계 사람들이 함께 토론하면 어떻 게 될까? 라는 딜레마에 빠짐 잦은 장애 윤석찬(2009), 트위터의 장애 극복 이야기 http://channy.creation.net/blog/714
  • 10. 데이터 폭증 시대의 두 가지 문제 @mdennis, datastax
  • 11. 빅데이터란?
  • 12. 최근 BigData 기술 동향 비관계형(Non-releational) 시각화 D3js Pentaho Hadoop Horton Cloudera MapR Intel EMC 관계형(Relational) 실시간 Storm/Shark Apache S4/Kafka Apache Drill Apache Tazo Teradata Aster EMC Greenplum IBM InfoSphere HP Vertica SAP Hana Oracle SAP Cloudera Impala Google BigQuery Oracle IBMDB2 NewSQL NoSQL 키/값 Redis Membrain BerkeleyDB CouchBase Cassandra SQLServer 문서기반 CouchDB MongoDB 빅테이블 HyperTable Hbase Data as a Service AppEngine Amazon RDS SimpleDB SQL Azure 그래프 FlockDB Neo4j Drizzle MySQL Cluster NimbusDB ScaleBase VoltDB Modified © Inforchimps. 2012
  • 13. Hadoop 기술 batch analytics REDUCE MAP Input … 복잡한 문제를 작은 문제로 쪼갠다 … 문제를 여러 서버에 나누어서 해결한다 결과를 모아서 합친다 Output …
  • 14. Hadoop의 장단점 장점 : 기존 분석 기술에 비해 저렴하게 데이터 분석 가능 – 데이터를 바라 보는 관점의 차이 (저렴한 처리 비용) – 샘플링이 필요 없음 (대용량 처리 가능) – 운영 비용이 적음 (인프라 운영이 관리 가능) – 분석도구나 프로그래밍 언어에 독립적임 – 다양한 개발 도구 (오픈 소스 지원) 단점: 분석 방식의 변화 및 내재화 비용 – 개념의 변화가 필요 (Map/Reduce식 사고 전환 필요) – Hadoop은 진화 중(벤더 배포판 사용 기회 늘어남) – 아직 구현되지 않은 부분이 많음(버전 호환성이 낮은 편) – 장애에 대한 대비 필요(메모리 및 네트웍 관련 시행착오) – 실시간 분석에 대한 필요성 (대안 기술 선택적 사용)
  • 15. NoSQL Not Only SQL Yahoo! Research(2010), Cloud Serving Benchmark http://research.yahoo.com/files/ycsb-v4.pdf 대용량 데이터 업데이트 및 조회 시, 기존 RDBMS에 비해 빠른 성능 제공 구조가 간단한 대량 이벤트 및 로그 데이터 저장 및 조회 시 유용
  • 16. NoSQL의 장단점 장점: 빠르고 유연한 데이터 저장 및 조회 능력 – 데이터가 증가함에 따라서 노드의 갯수만 늘리면 됨(확장성과 가용성) – Key-Value 형식으로 저장하므로 유연한 데이터 구조(Schemaless) – 데이터 인덱싱으로 빠른 응답 가능(고성능)장점 : 기존 분석 기술에 비해 저렴하게 데이터 분석 가능 단점: 분석 방식의 변화 및 내재화 비용 – 스키마 설계, 서버 네트워크 구성, 메모리/IO 등에 시행착오 – 데이터 무결성(integrity)을 위한 처리 비용이 큼 • 트랜잭션과 같은 복잡한 처리에 적합하지 않음 • 장애시 데이터 복구에 드는 노력이 많이 듦 – Schemaless라서 Join 과 같은 복잡한 쿼리 사용 어려움 • MongoDB 같은 경우, 빠른 인덱싱 및 SQL 친화적인 지원 가능
  • 17. Realtime Event-streaming 분석에 포함 되지 못하는 실시간 데이터 파악 오픈소스 기술명 구현 방식 구현 언어 문서화 즉시 Rule 추가 기능 성숙도 커뮤 니티 Scaleout 방식 Esper 선언적 SQL Like Java 매우 좋음 가능 높음 중간 Droools Fusion 선언적 SQL Like 및 Rule Java 좋음 가능 높음 작음 Storm Scaleup 방식 Job 설계 Cloujure 있음 Zoopkeeper 이용 중간 빠르게 성장중 Apache S4 Job 설계 Java 평균 Zoopkeeper 이용 낮음 중간 Apache Kafka Job 설계 Java 좋음 Zoopkeeper 이용 중간 작음 김병곤(2013), 데이터를 실시간으로 모아서 처리하는 다양한 기법 http://www.youtube.com/watch?v=HmVegCGWbsU
  • 18. 실시간 분석의 어려움 – Hadoop은 배치(Batch) 처리 방식이라 실시간에 적합하지 않음 – NoSQL은 데이터 저장만 빠르지 분석 데이터를 걸러내기 어려움 Storm https://github.com/nathanmarz/storm/wiki – Twitter(구, BackType)에서 직접 개발해서 오픈소스화 – Data Stream을 바라보고 실시간으로 데이터를 바라보는 로직을 구현 – 로직(Topology)를 Storm Cluster로 던지면 적절히 실행해서 분석 Data Stream NoSQL Data Stream Node.js Spout Bolt
  • 19. SQL on Hadoop 분석 전처리 작업 없이 데이터 현황 파악 필요 시 – 인메모리/파일 기반 분산 기술을 활용한 쿼리 엔진 – Map/Reduce를 사용할 필요가 없는 질의 조건일 때 활용 주요 오픈 소스 기술 – Impala: Cloudera Hadoop 배포판 및 HiveQL 호환 – Apache Tajo: HDFS 지원 및 표준 SQL 호환 – Apache Dremel: MapR에서 주도하며, 아직 초기 개발 단계 상용 서비스: Google BigQuery – Dremel 기술을 활용한 상용 서비스 Cloudera Impala Horton Hawq MapR Stinger Apache Tajo Apache Drill
  • 20. Berkeley Stack 주요 특징 – – 인메모리 기반의 새로운 오픈소스 분석 기술로 특정 데이터의 경우, Haoop에 비해 수 십배 빠른 처리 속도 기존 Hadoop 기술과 호환성 극대화하여 개발자 지원, But 인메모리 가지는 한계 있음 Spark http://spark-project.org – – – 스토리지 In/Out 대신 주요 데이터셋을 메모리에 올려 서 Iteration에 최적화 시킴 (머신러닝/그래프 탐색) Interactive Data Mining에 대한 최적화 (R/Excel/Python 등) 기존 HDFS 호환 및 Scala, Java, Python 기반 프로 그래밍 가능 Spark Streaming – 스트리밍 데이터에 대한 분석 기능 제공 Shark http://shark.cs.berkeley.edu/ – HiveQL 기반의 분석 기능 제공 UC BERKELEY
  • 21. 요약하면… Hadoop = Function (All Data) – Cloudera, Horton, MapR, Intel, EMC Realtime Event = Function (Data Stream) – Storm, S4, Kafla SQL on Hadoop = Query (All Data) – Impala, Dremel, Tajo, BigQuery NoSQL = Query (Data Store) – Mongodb, Hbase, Cassandra…
  • 22. SQL on Hadoop 100배, 200배 성능의 진실 http://jaso.co.kr/480 현재 SQL-On-Hadoop 진영에서 제시하는 대부분의 성능 수치는 일반적인 질 의나 전체 질의에 대해서 평균 몇 배 빠르다가 아닌 자신들이 유리한 조건 에서 테스트한 결과만을 언급하는 경우가 많다. 필자의 테스트 결과 를 보면 대략 평균 3 ~ 5배 정도이고 질의의 종류에 따라 수 십배 정도 빠를 수 도 있고, 더 느릴 수도 있다. 자신의 데이터 속성과 질의 속성에 맞는 플랫폼을 선택하는 안 목이 필요할 때이다. 미국산 벤더, 블로그, 언론에서 제시한 수치라고 맹신하 는 것은 금물이다. SQL on Hadoop 100배, 200배 성능의 진실 (김형준) 중에서…
  • 23. Daum 빅데이터 활용 사례 • – – – – – – • 쇼핑 하우 상품 클릭 분석 사례 다음 Top 토픽 분석 및 추천 서비스 UCC 문서의 스팸 유저 필터링 사물 검색 이미지 역색인 자연어 처리 텍스트 분석 모바일 광고 데이터별 매체 분석 등 연구 개발 사례 – – 이미지 유사성 매칭 분석 대용량 시맨틱 웹 검색 엔진 개발 • 마이 아고라 검색 광고 노출 최적화 최근 방문 카페 저장 사내 캐시 서버(Redis) 사내 Git 저장소(Redis) 데이터 처리 (Hbase) • • • • 검색 엔진 색인 문서 저장 서버 모니터링 데이터 저장 로그인 로그 저장 카페 방문 로그 저장 윤석찬(2012), Daum 빅 데이터 기술 활용 사례 http://www.slideshare.net/Channy/daums-hadoop-usecases http://devon.daum.net/2012/session/o1 이미 공유 많이 했어요!! 찾아보세요~~ 서비스 적용 (MongoDB/카산드라) • • • • • 전사 로그를 통한 통계 분석 광고 로그 분석을 통한 타겟팅 검색 품질 랭킹 분석 및 개선 광고 및 클릭 로그 분석을 통한 타켓팅 카페 로그 분석을 통한 사용자 카페 추천 게임 서버 로그 분석 등 데이터 분석 사례 – – – – – – • • 로그 분석 사례 김용우, 이선호(2012), Hadoop 실전 사용기 http://devon.daum.net/2012/session/o2 유응섭, 최준건(2012), 알고쓰자! NoSQL http://devon.daum.net/2012/session/o3 안세준(2012), 삽질로 일궈낸 카산드라 사용기 http://devon.daum.net/2012/session/o4 윤석찬(2012), Daum 빅 데이터 비지니스 분석 사례 http://www.slideshare.net/Channy/daum-bigdata-analytics-usecases
  • 24. Daum 실시간 분석 사례 • 로그 분석 사례 – – – – – – • 데이터 분석 사례 – – – – – – • 전사 로그를 통한 통계 분석 광고 로그 분석을 통한 타겟팅 검색 품질 랭킹 분석 및 개선 광고 및 클릭 로그 분석을 통한 타켓팅 카페 로그 분석을 통한 사용자 카페 추천 게임 서버 로그 분석 등 쇼핑 하우 상품 클릭 분석 사례 다음 Top 토픽 분석 및 추천 서비스 UCC 문서의 스팸 유저 필터링 사물 검색 이미지 역색인 자연어 처리 텍스트 분석 모바일 광고 데이터별 매체 분석 등 연구 개발 사례 – – 이미지 유사성 매칭 분석 대용량 시맨틱 웹 검색 엔진 개발 • 서비스 적용 (MongoDB/카산드라) • • • • • • 마이 아고라 검색 광고 노출 최적화 최근 방문 카페 저장 사내 캐시 서버(Redis) 사내 Git 저장소(Redis) 데이터 처리 (Hbase) • • • • 검색 엔진 색인 문서 저장 서버 모니터링 데이터 저장 로그인 로그 저장 카페 방문 로그 저장 • 서비스 분석 – 미디어 다음 실시간 분석 – 모바일/PC탑 실시간 분석 • 데이터 수집 – Twitter 실시간 데이터 수집기
  • 25. Daum 기술 활용 사례
  • 26. 실시간 분석이 필요할 때… 활용 대상 영역 – 쇼핑몰 사이트의 사용자 클릭 스트림을 통해 실시간 개인화 – 사용자 위치 정보 기반 광고 및 추천 기능 – 시스템 이벤트를 이용한 실시간 보안 감시 – 차량 추적 및 위치 정보 수집을 이용한 도로 교통 상황 파악 – 사용자의 액션 수집을 이용한 이상 행위 탐지 기획자의 요구 사항 – 데이터가 변화되는 모습을 화면에서 바로 보고 싶다! – 간결한 차트와 선택 및 실시간 변화를 보고 싶다! 기술 요구 사항 – 로그 수집, 실시간 분석 및 장기 분석을 위한 저장소 필요 – 주기적 차트 생성 및 쿼리에 대한 브라우저 기반 기능도 구현 필요
  • 27. 1. 미디어 다음 실시간 분석 사례 미디어 콘텐츠에 대한 실시간 현황 파악 – 이슈에 대한 실시간 상황 파악을 위한 관리 도구 제공 미디어 콘텐츠에 대한 실시간 현황 파악 – ‘나는가수다’, ‘K팝스타’ 같은 디지털 브랜드에 대한 변화 측정 필요
  • 28. 미디어다음 월간 PV 현황 © 코리안클릭(2013.10)
  • 29. 서비스 구현 시 활용 기술 Kestrel – http://robey.github.io/kestrel/ – Blaine Cook의 "starling"을 기반한 JVM 분산 메시지 큐 서버로 서, memcached 및 thrift 프로토콜을 지원 Storm – https://github.com/nathanmarz/storm/wiki – 데이터 스트림에 대한 분석 기능을 담당 Redis – http://redis.io/ – 디스크 I/O 없이 빠르게 처리하기 위해서 in-memory key-value store로서 임시 분석값을 저장 Cassandra – http://cassandra.apache.org/ – 많이 이용되는 NoSQL 서버로서 분석값의 영구 저장소로서, Hbase 나 MySQL 등이 활용되기도 함
  • 30. (1) 스트리밍 로그 얻기
  • 31. 콘텐츠 단위로 직접 로그 수집
  • 32. (2) UV/PV 올리기
  • 33. PV/UV 캐시 저장
  • 34. (3) 분석 데이터 저장 및 조회 Search, Aggregation, Ranking을 위해 지난 1분동안 UV/PV 변화가 있었던 컨텐츠만...
  • 35. 뉴스 단위별 실시간 조회 가능
  • 36. 다양한 분석 기능 제공 분 단위 PV/UV 조회 급등 조회 기능 기획자를 위한 크롬 확장 기능 분석 조회 API 웹 브라우저에서 확인 가능
  • 37. (4) 장애 대응
  • 38. 2. Daum Top 실시간 분석 사례 다음 PC웹 및 모바일 웹 첫화면 콘텐츠 아이템에 대한 실시간 트래픽 파악 사용자에게 맞는 콘텐츠 추천 및 파급력 분석 가능
  • 39. 3. Twitter 실시간 데이터 수집기 Twitter, 티스토리로 부터 오는 Stream Data 저장소 실시간 검색 인덱스를 위한 데이터 수집 및 제공
  • 40. c.f. 모바일 앱 크래시 통계 모바일 앱 디버깅 방식 – 실시간으로 Crashing 데 이터 수집 필요 (Storm/HBase?) • WebView에서 나는 오류도 많음 빠르게 수정 필요 – 특정 크래시와 관련 버그에 대한 학습 방법이 필요함 (Spark/Shark?) • 버그와 크래쉬 사이의 관계 최종 사용 기술 – Hbase M/R 오버 엔지니어링은 금물!
  • 41. 실시간 분석 구축 시 유의 사항 정말 필요한가? – Storm/S4 같은 기술을 도입 전 정말 필요한지 확인 해야 함 – 실시간 분석은 명확한 업무 정의가 된 경우에만 수행 해야 함 – 기술 선택 (Batch/Realtime/Query)에 대한 이해 파악 필요 고난을 각오해라! – 잘 알려진 케이스는 많으나 실제로 구현하다 보면 어려움 봉착 – 시스템 엔지니어링 운영 기술 및 대용량 메모리(~98GB) 기반 서 버팜 등이 필요함 역시 오픈 소스! – 오픈 소스 커뮤니티의 규모와 문서화 케이스 등으로 지원 가능한 지 확인 후에 진입하는 것이 좋다.
  • 42. References 1. 김병곤(2013), 데이터를 실시간으로 모아서 처리하는 다양한 기법 – http://www.youtube.com/watch?v=HmVegCGWbsU – http://readme.skplanet.com/?p=4605 2. 권동훈(2013), Hadoop에서의 실시간 SQL 질의: Impala – 3. http://helloworld.naver.com/helloworld/246342 김우승(2012), 실시간 빅 데이터(Real-time Big Data) 프로세싱 맛보기 – 4. http://kimws.wordpress.com/2012/03/07/%EC%8B%A4%EC%8B%9C%EA%B0%84 -%EB%B9%85-%EB%8D%B0%EC%9D%B4%ED%84%B0real-time-big-data/ 하호진(2012), Storm과 Esper로 실시간 분석 샘플 사용기 – 5. http://mimul.com/pebble/default/2012/03/14/1331718971671.html 심탁길(2012), 실시간 대용량 데이터 분석 기술과 적용 사례 – http://www.ktcloudware.com/resources/platform/07.pdf
  • 43. Daum에는 데이터도 많고 전문가도 많습니다! http://recruit.daum.net @channyun channy@daumcorp.com