39
Daum 내부 데이터 기술 활용 사례 윤석찬 다음커뮤니케이션 [email protected]

Daum’s Hadoop Usecases (2012)

Embed Size (px)

Citation preview

Page 1: Daum’s Hadoop Usecases (2012)

Daum 내부 빅 데이터 기술 활용 사례

윤석찬

다음커뮤니케이션 [email protected]

Page 2: Daum’s Hadoop Usecases (2012)

빅 데이터란?

@mdennis, datastax ©

Page 3: Daum’s Hadoop Usecases (2012)

데이터 분석 산업의 변화

©

Page 4: Daum’s Hadoop Usecases (2012)

웹서비스 비교 빅데이터

1990년대 시기 2010년대

X86급 서버 장비 중형급

상용 유닉스 잠식 시장 DW

Redhat 대표 회사 Cloudera

리눅스 토발즈 대표 영웅 더그 커팅

Linux 소프트웨어 Hadoop 인터넷 포털 웹 스타트업

혁신 주체 소셜네트워크 모바일

저렴한 웹서버 구축 변화 요인 저렴한 데이터 분석

빅데이터와 웹 서비스 비교도 © Channy’s Blog

빅데이터 열풍(2012)… web2.0 (2006) Cloud(2009)

Page 5: Daum’s Hadoop Usecases (2012)

Bigdata Stack?

©

Page 6: Daum’s Hadoop Usecases (2012)

Hadoop Kernel

©

Page 7: Daum’s Hadoop Usecases (2012)

Cloudera: Next Redhat?

©

Page 8: Daum’s Hadoop Usecases (2012)

Cloudera: Next Redhat?

©

Page 9: Daum’s Hadoop Usecases (2012)

Pattern Repeated:

©

Page 10: Daum’s Hadoop Usecases (2012)

Pattern Repeated:

© – Over 20,000 servers running Hadoop (2010) – Largest Hadoop cluster is 4000 servers, 16PB raw storage

Page 11: Daum’s Hadoop Usecases (2012)

Pattern Repeated:

© – 2000 servers, 24 PB raw storage, 100TB raw log/day (2010)

Page 12: Daum’s Hadoop Usecases (2012)

Pattern Repeated:

©

Page 13: Daum’s Hadoop Usecases (2012)

도대체 국내에 빅 데이터가 있기나 한가요?

우리는 도대체 왜 해야 하나요?

Page 14: Daum’s Hadoop Usecases (2012)

@mdennis, datastax ©

빅데이터는 상대적이다!

Page 15: Daum’s Hadoop Usecases (2012)

Daum의 Hadoop 이용 사례

• 로그 분석 사례 – 전사 로그를 통한 통계 분석 – 광고 및 클릭 로그 분석을 통한 타켓팅 – 카페 로그 분석을 통한 사용자 카페 추천 – 검색 품질 랭킹 분석 및 개선 – 게임 서버 로그 분석 등

• 데이터 분석 사례

– 다음 Top 토픽 분석 및 추천 서비스 – UCC 문서의 스팸 유저 필터링 – 사물 검색 이미지 역색인 – 자연어 처리 텍스트 분석 – 모바일 광고 데이터별 매체 분석 등

• 연구 개발 사례 – VisualRank: 이미지 유사성 매칭 분석 – SemSearch: 대용량 시맨틱 웹 검색 엔진 개발

클라우드 기반 Hadoop 테스트베드

구축 사례

여기서 다루지 않는 것: NoSQL 이용 사례

Page 16: Daum’s Hadoop Usecases (2012)

로그 분석 사례

Page 17: Daum’s Hadoop Usecases (2012)

Daum’s Number

• 월 검색 쿼리수 1,017,410,000 • 월 검색 UV 19,473,803

• 월 Top 페이지 PV 2,074,688,580 • 월 Top 페이지 UV 23,121,882

• 월 Daum.net PV 13,745,663,643 KoreanClick 통계(2012.3) 실제 내부 통계는 더 크다!

Page 18: Daum’s Hadoop Usecases (2012)

(1) 전사 로그 분석 – Legacy before 2008

access.log

24시간 이후 분석 결과 제공

전사 서버 로그 수집

Page 19: Daum’s Hadoop Usecases (2012)

(1) 전사 로그분석 – before 2010

수집

분석

서비스

Page 20: Daum’s Hadoop Usecases (2012)

(1) 전사 로그분석 – After Hadoop

수집

분석

서비스

Page 21: Daum’s Hadoop Usecases (2012)
Page 22: Daum’s Hadoop Usecases (2012)

(1) 전사 로그분석 – Tiara 시스템

• 일 로그 사이즈 70TB → 전 처리 및 압축 • Daum 서비스 내 발생하는 모든 트래픽을

수집하여 분석 및 리포팅 – 주요 분석 데이터: Pageview, Clickstream, User

Analysis

• 데이터 처리 스택 – Hadoop: 데이터 전처리 – Hive (UDF, M/R): SQL 기반 데이터 분석 – Pentaho Kettle (ETL): 데이터 저장 – Greenplum: 병렬 데이터베이스

• 기존방식에 비해 데이터 처리 속도 향상 및

데이터 적재기간 증가

Page 23: Daum’s Hadoop Usecases (2012)

(1) 전사 로그분석 – 적용 결과

• 더 빠른 분석 (10분 단위 실시간 로그 확인 가능)

• 더 쉬운 분석 (Hive)

selelct serviceId, count(distinct uuid)

from web_log

where dt='20120101' group by serviceId

고객 분석 일 로그 분석

Hadoop 도입 전 Hadoop 도입 후

Page 24: Daum’s Hadoop Usecases (2012)

• 더 안정된 시스템 – 분산처리로 인한 작업 안정성 증가

• 고려사항 – 추가 증설 시 Hadoop 세팅 및 애플리케이션 배포 이슈 – CPU/Memory intensive job을 해결하기 위한 클러스터 구성 및 관리 – 네트웍 부하로 인한 10g 구성 비용 증가 – 스케줄링에 따른 Job tracker를 통한 작업 분산의 어려움

• Hadoop 기반 클라우드 컴퓨팅 스택의 확산 필요

Page 25: Daum’s Hadoop Usecases (2012)

(2) 광고 로그 분석 시스템

• 광고 로그 및 통계 처리, 매체 토픽 분류 및 과거 로그 데이터를 기반으로 광고 집행 타켓팅 분석

• 광고 데이터 분석용 Hadoop 클러스터 구성 – 2.40GHz(듀얼 4코어)/ 메모리24GB: 서버 50여대 클러스터 구성

• input: 과거 집행(노출, 클릭) 로그 데이터 ( 필요에 따라 일, 주, 월 단위 로그 사용)

• output 광고에 대한 사용자별 노출 내역 통계 처리 – 10분에서, 시간당, 일 단위로 다양한 데이터 산출

Page 26: Daum’s Hadoop Usecases (2012)

데이터 분석 사례

Page 27: Daum’s Hadoop Usecases (2012)

(1) 다음 Top 토픽 분석

• Top 화면에 제공할 주요 콘텐츠의 토픽 분석

• Hadoop 기반의 머신러닝 도구인 mahout 이용

Page 28: Daum’s Hadoop Usecases (2012)

(2) UCC 문서 스팸 필터링

• 문서 내부 단어 및 사용자 프로필을 기반한 스팸 필터링

Document Feature

Extraction

Filtering with User Profile

Map Reduce

Map Reduce

(User ID, Doc Features) (User ID, Doc Features List)

(User ID, User Profiles) (User ID, User Profiles)

Document Set

Spam Users

+ +

Data Node

Data Node

Data Node

Data Node

Job Tracker + 2nd Name Node

Name Node Document DB

Spam User DB

– 처리 성능 : 일 평균 600만개 문서 – 최소 10~5000여개의 문서를 스팸 등록한 50만개 아이디 찾음

Page 29: Daum’s Hadoop Usecases (2012)

(3) 사물 검색 데이터 색인

• 대용량의 이미지 데이터를 최소한의 시간으로 분석하여 역색인과 검색에 필요한 데이터를 추출

• 사물검색 대상 이미지의 특징을 분석할 수 있는 시스템 구축 – 책/음악 앨범/영화 포스터 등 약 150만개

– 각 이미지에서 특징점 추출(260GB) – 빠르고 안정적인 데이터 분석, 역색인 데이터 생성

• 기존 방식 보다 1/10 정도 시간 단축

Page 30: Daum’s Hadoop Usecases (2012)

연구 개발 사례

Page 31: Daum’s Hadoop Usecases (2012)

(1) 이미지 검색 매칭 분석

• 이미지 특징의 매칭을 독립적인 Map/Reduce job로 병렬화 하여 이미지 추출

• 작업 방식 – 유사도 그래프를 구성 – 모든 이미지에 대해 특징 매칭을 통한 유사도 기반 hyperlink graph를 구함

– Visual hyperlink graph에 대해 Map/Reduce 병렬처리를 통한 분석으로 이미지 랭킹 부여

• 메타 데이터가 아닌 이미지 자체의 특징에 따라 검색 결과 개선 가능

Page 32: Daum’s Hadoop Usecases (2012)

(2) 대용량 시맨틱 웹 검색 엔진

구 분 2009 2010 2011

문서 수집 RDF Crawler 프로토타입 구현

- 고성능 RDF Crawler

구현

대상 문서 KBS 음악 DB+MusicBrainz (내부 텍스트 DB+LinkedData)

Daum 영화/음악/인물 DB (내부 RDB)

의학 LinkedData (PubMed 등 28개 레포지터리)

처리 수량 (RDF Triples)

1억건 5억건 96억건

전처리 방법 Map/Reduce (Triples 변환)

Map/Reduce (Triples 변환, SPARQL AnswerSet)

Map/Reduce (Triples 변환, 자동링크 생성, Solr

Index 생성)

검색 인덱스 RDF Repository (Jena) 유사 RDF Repo. (SPARQL SubQuery 전처리)

Solr RDF Index

서비스 음악 RDF 서비스 데모

Daum 의미 검색 http://labs.daum.net/semantic

Daum 의학 전문 검색 http://labs.daum.net/medical

클라우드 기반 Hadoop 기반 데이터 처리 플랫폼 연구 과제 활용

Page 33: Daum’s Hadoop Usecases (2012)

iCube

–Se3 Indexer

–건강 DB –N3

–Repository

Internet

–Search Service

–Shard Master

Daum Cloud

–Se3 –Search –Index

–Map/Reduce

–Shard Slave

–Se3 Statistics –Se3 Keywords

–Document –Repository

–CrawlDB

–Map/Reduce

대용량 RDF 생성

- 고성능 RDF 크롤러 구현

- Hadoop Map/Reduce 기반 데이터 전처리

- 96억 트리플 기반 검색 인덱스

관계 질의 기반 검색 UI 개발

- 특정 분야별 추천 키워드 제공

- 문서 저장소에서 RDF 뷰어 제공

- 건강 DB와 연계

Page 34: Daum’s Hadoop Usecases (2012)

p.s. 분산 파일 시스템: Tenth

• Tenth는 한메일, 카페 첨부 파일 등 대용량 파일을 저렴하게 저장하기 위한 분산 파일 시스템으로 2004년 부터 개발

• 저장 파일 개수 500억개, 5페타 바이트 (2010) – 2006년 라이코스메일, 카페 도입 – 2007년 한메일 기가 용량 도입 – 2009년 동영상 업로드팜 도입 – 2010년 다음 클라우드 도입

Tenth 비교 HDFS 2004 개발 시작 2006

C++ 구현 언어 Java

첨부 파일을 저장하기 위해 하나의 스토리지 처럼 이용 가능

이용 목적 분산 시스템에서 파일 저장 용도로 활용

다중 (MySQL이용) 네임 노드 싱글

1~4MB (fixed chunks) 파일 형태 64MB (fixed blocks)

미지원 디렉토리 구조 지원함

Page 35: Daum’s Hadoop Usecases (2012)

사내 클라우드 플랫폼: 개발자에게 서버 한대씩!

• 사내 프라이빗클라우드 구축 – 테스트 및 실 서비스 구축 테스트 용도 – CloudStack 커스트마이징

• Sandbox 플랫폼으로 활용 – 사내 IaaS 테스트베드 – 사내 PaaS 테스트베드(CF) – 사내 Hadoop 테스트베드 – 외부 OSS 커뮤니티 지원

• 테스트베드 자원 활용

– 총 500여개의 가상 머신 할당 가능 – 총 200여개 이용 중 (CPU 및 메모리 할

당율 각각 52% 및 76% 지원)

Internet

–Daum LDAP

–CloudStack –Manager

–Storage –Server

–DB –Server

–Instance –Nodes –Server

실 서비스 구축 테스트 • 의학 검색 베타 서비스 구축 • 윈도우 메신저 서버 • 종료 예정 서비스

사내 테스트 베드

• 개발자용 랩 • 사내 Hadoop Sandbox

iCube

사내 프라이빗 클라우드 테스트 베드 구축

- 테스트서버 4 대

- 마스터2대/노드 7대/스토리지 2대

Page 36: Daum’s Hadoop Usecases (2012)

< Daum 사내 클라우드 테스트 베드 자원>

< Daum 사내 클라우드 모니터링 시스템>

Page 37: Daum’s Hadoop Usecases (2012)

Lessons for Big Data

• 기술 내재화가 중요 (No Vendors!) – 개발자들이 직접 Hadoop을 활용할 수 있는 환경 필요 – 오픈 소스의 적극 활용 및 개발 잉여력 제공

• 데이터 분석 및 처리의 역할 파괴 (No Data Scientist!) – 개발자들이 직접 실시간 분석을 위한 Hive 활용 – 문서, 이미지 등 다양한 형태의 데이터 처리를 위한 토대 마련

• Small Data를 활용 강화 (No Big Mistakes!) – Small Data라도 실시간으로 저렴하게 데이터를 처리하고, – 처리된 데이터를 더 빠르고 쉽게 분석하도록 하여, – 이를 비즈니스 의사결정에 바로 이용하는 것 – 이것이 바로 BigData 기술을 바른 활용임!

Page 38: Daum’s Hadoop Usecases (2012)

Daum의 빅데이터 기술 전략

• 사내 기술 코디네이션 – 각 개발자가 Hadoop을 다양하게 활용할 아이디어 개발 및 실험 실행 – Hadoop을 테스트 해 볼 수 있는 클라우드 플랫폼 제공 – 실 서비스 투입 시 기존 운영팀으로 부터 노하우 전수

• 사내 세미나 및 교육 프로그램 운영 • Hadoop Expert를 중심으로 필요 시 노하우 제공

• 개발자 데이터 접근성 향상 – 데이터 분석가가 아닌 개발자가 직접 데이터에 접근 – 데이터가 있는 곳에서 바로 분석 – 기획자와 비즈니스에서 바로 의사 결정 가능

• 때로 콘트롤 타워가 진입 장벽과 아이디어 고갈을 가져온다! – 기술에 따라 어떤 접근을 할지 선택이 중요

Page 39: Daum’s Hadoop Usecases (2012)

경청해주셔서 감사합니다!

Q&A @channyun