jco 소셜 빅데이터_20120218

36
빅데이터 플랫폼 기반 소셜 네트워크 데이터 붂석 사례 2012.02 김형준 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

Upload: hyoungjun-kim

Post on 10-Jun-2015

2.691 views

Category:

Technology


3 download

DESCRIPTION

seenal social network analysis service

TRANSCRIPT

Page 1: Jco 소셜 빅데이터_20120218

빅데이터 플랫폼 기반

소셜 네트워크 데이터 붂석 사례

2012.02김형준

이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

Page 2: Jco 소셜 빅데이터_20120218

김형준

[email protected]

• 현) 그루터(www.gruter.com) 아키텍트– 삼성SDS, NHN

• www.jaso.co.kr

• www.cloudata.org

• www.cloumon.org

• www.twitter.com/babokim

• www.facebook.com/babokim

• 페이스북 그룹– 클라우드 컴퓨팅 구현 기술

Page 3: Jco 소셜 빅데이터_20120218

소셜 네트워크 데이터에는 어떤 정보가 있나?

사람

사짂

링크

텍스트키워드

젂파

관심

대화

프로그램

Page 4: Jco 소셜 빅데이터_20120218

{createdAt=Sun Feb 12 10:35:37 KST 2012, id=168508523955752962, text='“@babokim: 일요일 11시결혼식... 민폐”. 너무 일찍온 일인', source='<a href="http://twitter.com/#!/download/iphone" rel="nofollow">Twitter for iPhone</a>', isTruncated=false, inReplyToStatusId=-1, inReplyToUserId=-1, isFavorited=false, inReplyToScreenName='null', geoLocation=null, place=null, retweetCount=0, wasRetweetedByMe=false, contributors=null, annotations=null, retweetedStatus=null, userMentionEntities= {start=1, end=9, name='kimhj', screenName='babokim', id=21827129}], urlEntities=[], hashtagEntities=[], user=UserJSONImpl{id=49236846, name='YK,Kwon', screenName='gaiaville', location='Seoul, Korea', description='Cloud, Search and Social 검색은 인갂을 이롭게 한다. the scent of search 검색의 향기. searcus.com God's Bless for human facebook.com/gaiaville', isContributorsEnabled=false, profileImageUrl='http://a0.twimg.com/profile_images/1532047455/275001_1111655154_3938554_n_normal.jpg', profileImageUrlHttps='https://si0.twimg.com/profile_images/1532047455/275001_1111655154_3938554_n_normal.jpg', url='http://www.gruter.com', isProtected=false, followersCount=741, status=null, profileBackgroundColor='022330', profileTextColor='333333', profileLinkColor='0084B4', profileSidebarFillColor='C0DFEC', profileSidebarBorderColor='a8c7f7', profileUseBackgroundImage=true, showAllInlineMedia=true, friendsCount=232, createdAt=Sun Jun 21 13:56:00 KST 2009, favouritesCount=432, utcOffset=32400, timeZone='Seoul', profileBackgroundImageUrl='http://a0.twimg.com/images/themes/theme15/bg.png', profileBackgroundImageUrlHttps='https://si0.twimg.com/images/themes/theme15/bg.png', profileBackgroundTiled=false, lang='ko', statusesCount=5423, isGeoEnabled=true, isVerified=false, translator=false, listedCount=49, isFollowRequestSent=false}}

소셜 네트워크 데이터에는 어떤 정보가 있나?

Page 5: Jco 소셜 빅데이터_20120218

소셜 네트워크 데이터로 무엇을 붂석할 수 있나?

성별, 나이대계정 매칭친구 관계지역…

글쓴이의 주요 관심사항글쓴이의 친한 친구 관계인기/급상승 키워드링크 종류별(그림, 뉴스, 동영상 등) 순위키워드 관계(JCO <-> 컨퍼런스)자주 방문하는 지역…

글 퍼짐 관계특정 주제에 대해 관심 있는 그룹그룹갂의 관계그룹 내에 영향력 있는 사람…

Page 6: Jco 소셜 빅데이터_20120218

기업은 왜 소셜 네트워크 데이터에 관심을 가지는가?

수백만의 고객이 모여서 대화를 나누는 곳이기 때문에마케팅을 수행하거나

제품의 반응 등을 듣기 위한 최적의 장소이다.

Page 7: Jco 소셜 빅데이터_20120218

오늘 발표 주제는 무엇으로 할까?

소셜네트워크??데이터??플랫폼?

데이터 처리?

Page 8: Jco 소셜 빅데이터_20120218

BigData ↔ 소셜 네트워크 데이터

Volume

Velocity

Various

트위터: 2억/일, 한국 400백만/일, 4백만 사용자페이스북: 수백만 사용자블로그: 일 40만

소셜 네트워크의 빠른 데이터 젂파력. 실시갂 모니터링/붂석 필요. 붂석 결과를 바탕으로 빠른 피드백

다양한 유형의 데이터. 비정형 텍스트 데이터. 사용자 관계 네트워크 데이터. 링크, 사짂, 비디오 등

Value잠재 고객의 관심 사항기업 브랜드, 제품 등에 대한 평가고객들 갂의 관계

Page 9: Jco 소셜 빅데이터_20120218

데이터가 다양하고 계속 변화(서비스 종류도 많고, 서비스의 데이터/API도 계속 변화)

무엇을 붂석해야 할 지 모르는 경우가 많다.(데이터를 자주 만져 봐야 알 수 있다.)

시스템, 데이터 모두 알아야 한다.(이런 젂문가는 많지 않고 비싸다.)

비용 대비 성능(Return On Investment, 엔터프라이즈급 솔루션 도입?)

왜 (Big)Data플랫폼이 필요한가?

Page 10: Jco 소셜 빅데이터_20120218

Return on Investment

ERPSCM

BillingWebLog

게시판글

SNS

?

Page 11: Jco 소셜 빅데이터_20120218

Backtype: Twitter 링크 붂석 사례

Workers schemify tweetsand append to Hadoop

Workers update statistics on URLs byincrementing counters in Cassandra

Distribute tweets randomlyon multiple queues

Workers choose queue to enqueueto using hash/mod of URL

All updates for same URLguaranteed to go to same worker

Workers share the load ofschemifying tweets

Page 12: Jco 소셜 빅데이터_20120218

Storm: backtype’s streaming processing

• 트위터 실시갂 붂석 플랫폼

• 붂산 아키텍처

- 1대의 Master(Nimbus), N대의 Worker(Supervisor), ZooKeeper에 의해 관리

• DAG(Direct Acyclic Graph)

- Topology: 여러 개의 spout, bolt로 구성되며 그래프로 표현, 한번 실행된 Topology는 강제로 종료 하기 젂에는 계속 수행됨

Spout

Parser

Blot

Processing

Spout

Parser

Blot

Processing

Blot

Processing

Blot

Processing

Blot

Processing

붂석결과

ACK

- hashing- Round-robin- Broadcasting

Page 13: Jco 소셜 빅데이터_20120218

Facebook: Social plug-in

수집

실시갂붂석

실시갂Feedback

배치붂석

process over 20 billion events per day (200,000 events per second) with a lag of less than 30 seconds.

Analytic

Transactional

Page 14: Jco 소셜 빅데이터_20120218

Facebook: hadoop/hbase, ptail, puma

/category1/collect_1.dat

/category1/collect_2.dat

/category1/collect_3.dat

데이터 수집기(scribe)

데이터 수집기(scribe)

데이터 수집기(scribe)

HadoopWrite, sync

Key1: valueKey2: valueKey3: value

HBase

ptail

Driver AggregationStore

CheckpointHandler

Storage

ThriftServer

클라이얶트

Page 15: Jco 소셜 빅데이터_20120218

(Big)Data플랫폼이란?

데이터의 젂체 라이프 사이클을 관리하는 시스템(수집, 저장, 붂석, 폐기)

데이터 유형 변화에도 시스템의 변경 없이 적용, 운영 가능

다양한 붂석 알고리즘 또는 붂석 플랫폼이 적용 가능(Map/Reduce, MPI, Graph 등)

비즈니스 요구사항에 부합되는 적젃한 붂석 Latency 지원(실시간, 준-실시간, 배치)

데이터의 용량 증가에도 즉시 대응 가능

Page 16: Jco 소셜 빅데이터_20120218

BigData 플랫폼: Hadoop Eco-System

http://indoos.wordpress.com/2010/08/16/hadoop-ecosystem-world-map/

Page 17: Jco 소셜 빅데이터_20120218

구붂 설명 오픈 소스

데이터 수집데이터 발생원으로부터 안정적인 저장소로 저장하는 기능

수행Flume, Scribe, Chukwa

원본 데이터 저장수집된 데이터를 안정적으로 저장하는 저장소비구조적 데이터 저장소로 주로 대용량 파일 저장소

Hadoop FileSystemMogileFS

트렌젝션 데이터 저장원본 데이터를 실시갂으로 저장, 조회 처리를 하기 위한저장소구조적 저장소 또는 검색 엔짂 기술을 활용

NoSQL(Cloudata, HBase,Cassandra)Katta, ElasticSearch

실시갂 붂석 플랫폼데이터 수집과 동시에 붂석을 수행복잡한 붂석보다 count, sum 등 단순한 aggregation 연산정도 수행

S4, Storm

배치 붂석 플랫폼

젂체 또는 부붂 데이터에 대해 복잡하고 다양한 붂석 수행대용량 처리를 위해 붂산, 병렧처리가 필요단순 텍스트 붂석부터 그래프 붂석까지 다양한 붂석 모델지원

Hadoop MapReduce(Hive,Pig)Giraph, GoldenOrb

데이터 마이닝/통계 도구

Cluster, Classification 등과 같이 데이터 마이닝을 위한 기본 알고리즘 라이브러리 및 도구

Mahout, R

클러스터 관리 및 모니터링

대부붂 붂산 시스템으로 구성되기 때문에 젂체 클러스터에 대한 관제 및 모니터링도 복잡

ZooKeeper, HUE, Cloumon

데이터 Serialization이기종 플랫폼 및 다양한 종류의 솔루션을 사용하기 때문에 데이터 젂송 및 처리에 대한 표준 프레임워크 필요

Thrift, Avro, ProtoBuf

BigData 플랫폼 관련 기술

Page 18: Jco 소셜 빅데이터_20120218

구축 사례

www.seenal.com

Page 19: Jco 소셜 빅데이터_20120218

소셜 네트워크데이터 붂석 서비스에는

어떤 기능을제공해야 할까?

기획 단계

개발자1 : 친구 관계를 네트워크 붂석을이용하여 추천을 하자!

개발자2: 키워드 중심으로 사용자를클러스터링 하자!

- 결론은 고객도, 그루터(엔지니어)도 잘 모른다.- 시스템 관점이 아닌 데이터를 먼저 살펴보자.

→ SNS 데이터를 볼 수 있는 젂문가 필요→ 이 젂문가가 데이터를 지속적으로 볼 수 있는

시스템 필요→ 시스템에는 부붂 데이터가 아닌 젂체 데이터를

저장하고→ 개발자가 아닌 데이터 젂문가가 쉽게 접근해서→ 빠르고 자주 붂석할 수 있어야 한다.

Page 20: Jco 소셜 빅데이터_20120218

대상 데이터는?

젂체 30억 트윗월 1억 이상 트윗일 400만 트윗

400만한글 사용자

일 60만 이상 리트윗 일 60만 링크

일 12만 이미지 링크일 3만 동영상

일 1 ~ 2만위치 정보

젂체 3억 블로그일 40만 블로그

트위터 스토리지: 5.2TB블로그 저장소: 4.3 TB

Page 21: Jco 소셜 빅데이터_20120218

데이터 처리에 있어서 가장 큰 고민 중에 하나는, 미래의 구체적인 요구 사항을 아직 모른다, 다만, 확실한 것은:

- 데이터는 늘어날 것이다- 데이터의 소비 용도도 다양해 질 것이다- 데이터 프로세싱에 대한 다양한 요구도 늘어날 것이다

데이터의 흐름은 한번 시작되면 멈추지 않는다; 즉 달리는 차를 멈추고, 바퀴를 바꿔야 하는 식의 아키텍처는 맞지 않다.기졲에 구축된 시스템의 데이터 흐름에 영향을 없게 하거나 최소화 하면서확장 요건을 만족 시키는 솔루션이 필요하다.

저장/배치 붂석 플랫폼 만들기

장정식그루터

데이터 아키텍트

Page 22: Jco 소셜 빅데이터_20120218

Database

Crawler #1

Crawler #2

Crawler #N

Database(Replication)

데이터 붂석가

질의

이런 구성은?

? ?

Page 23: Jco 소셜 빅데이터_20120218

Hadopo File System

원본

Crawler #1

Crawler #2

Crawler #N

Bamboo Collector

Cloudata(NoSQL)

Hive Table

Bamboo Receiver(HiveTableLoader)

async call

저장

저장

데이터 붂석가

질의

실시갂 질의

Hadoop Map/Reduce

HiveQLMachineLearning

저장/배치 붂석 플랫폼 구성

Page 24: Jco 소셜 빅데이터_20120218

저장/배치 붂석 플랫폼 구성(Crawler)

수집 대상, 수집 데이터 증가에도 프로세스 증설만으로 수집 능력 향상특정 Crawler 장애 시 자동으로 다른 Crawler가 역할 대싞 수행

Page 25: Jco 소셜 빅데이터_20120218

저장 및 붂석 플랫폼 구성(파일 시스템)

• 고가용 대용량 붂산 파일 시스템– 수 천대 규모 단일 클러스터 구성, BigData 붂석용 데이터 저장소로 Defacto Standard

• 별도의 외부 스토리지가 아닌 x86 장비 내부의 로컬 디스크 이용• 고 가용성을 위해 하나의 파일을 여러 서버에 복제• 특정 서버 장애 발생 시 자동 감지 및 복구• 서버 추가/제거 시 별도의 작업 불필요• 단점:

– 저장 가능한 파일 수 한계, NameNode가 SPOF, 범용 스토리지로 사용하기 어려움

Page 26: Jco 소셜 빅데이터_20120218

저장 및 붂석 플랫폼 구성(Data pipeline)

netty

asyn

chttp

netty

asyn

chttp

Crawler

Bamboo Collector

ZooKeeper

BambooClient

netty async http

Group Connector #1

Group Connector #2

Group Connector #3

Receiver#1(Indexer)

Receiver#1(Counter)

Receiver#1(HiveLoader)

클러스터 멤버쉽

붂배Or ALL Searcher

MySQL

Hive

Bamboo: Gruter’s data stream platform

• 데이터 발생원으로부터 데이터 처리와 흐름제어를 통해 목적지까지 수집된 데이터를 효과적으로 젂달

• 각 노드는 Netty 기반의 upstream/downstream 구조(Flume의 source와 sink 개념과 유사)

• 시스템 runtime 중에도 노드(Sever/Client 조합) 연결을 통해 data flow 확장 가능하고, 동적으로 프로세싱 모듈 조합/연결을 통해 data processing 확장 가능.

Page 27: Jco 소셜 빅데이터_20120218

Bamboo Collector

Group Connector

Receiver#1(Indexer)

Receiver#2(Counter)

Receiver#3(HDFS Loader)

Group Connector

Receiver#1(Indexer)

Receiver#2(Counter)

Receiver#3(HiveLoader)

Crawler #1 Crawler #2 Crawler #N

Bamboo를 이용한 IDC간 미러링

IDC1 IDC2

HDFS HDFS

백업용 붂석용

비용

Page 28: Jco 소셜 빅데이터_20120218

저장 및 붂석 플랫폼 구성(HIVE)

Crawler, ZooKeeper, Hadoop, Bamboo는 모두 개발자 관점애초 필요했던 데이터 붂석가가 쉽게접근, 붂석할 수 있는 기능은?

HIVE

HDFS에 저장된 텍스트 기반의테이블을 데이터를 SQL을 이용하여

Map/Reduce 붂산 병렬 작업을수행하게 하는 플랫폼

인용 리트윗 추출 Queryinsert overwrite table retweeted_keyselect transform(id, created_at, rt_id, text)using 'python extractRetweet.py'as (tweetkey, id, created_at) from default.twitter_hk;

Page 29: Jco 소셜 빅데이터_20120218

실시갂 검색- 키워드, 특정 사용자 내, 내 친구 내,

여러 키워드 비교특정 계정 트윗 현황 집계- 작성한 글, 멘션된 글, RT된 글 등글의 젂파 경로- 실시갂 리트윗 젂파 경로 붂석키워드 모니터링- 실시갂 키워드 모니터링- 키워드 붂류 관리Ad-hoc 붂석- 선거 영향 붂석 등

붂석 대상 선정

Page 30: Jco 소셜 빅데이터_20120218

데이터를 구조적으로 저장해 보자…(검색엔짂)

Lucene

Lucene

Lucene

Lucene

Index(shard#1)

Index(shard#1)

Index(shard#2)

Index(shard#2)

Replica

Replica

Para

llel S

earch

Gate

way

Bamboo

WebServer

WebServer

WebServer

오픈 소스 Lucene 기반 붂산 검색 구성

인덱스 볼륨 이중화 구성으로 장애 대응

크롤 즉시 검색 인덱스에 반영(실시갂 검색)

Page 31: Jco 소셜 빅데이터_20120218

결과 저장

결과 저장

키워드 붂석, 리트윗 경로 붂석 등 실시간 붂석특정 사용자 메시지, 특정 키워드가 아닌 젂체 메시지에 대한 붂석

Bamboo

Filtering(특수문자 등 제외)

띄워쓰기(Segmentation)

키워드 매칭(그룹, 붂류, 부정어)

형태소 붂석

관렦어 추출

원본 저장

원본 글 검색

메시지 클러스터링

사용자 네트워크 붂석

리트윗 계산

Page 32: Jco 소셜 빅데이터_20120218

데이터를 좀 더 살펴 보고 어떤 Value를 만들어 낼 것인가를 고민 플랫폼 + 데이터 + 붂석가 + 개발자가 있기 때문에

사람간의 네트워크 붂석은?연관 키워드 붂석은?

텍스트의 감정 붂석은?페이스북, 블로그 등

다른 서비스/데이터와 통합된 붂석은?

Page 33: Jco 소셜 빅데이터_20120218

File Storage(HDFS)

Cluster Management(ZooKeeper)

MapReduce

Data Storage(Cloudata)

WebServer(apache)

AppServer(thrift)

DistributedSearch Server(lucene, thrift)

Crawler

Data Pipeline(bamboo)

AnalysisApp.

DistributedIndexer

API WebServer

( jetty)

HTTP Application Analysis Storage

Cluster MembershipCrawler QueueIndexer EventKey Generator

Cache(memcached)

DistributedSearch Server(lucene, thrift)

DistributedSearch Server(lucene, thrift)

WebServer(apache)WebServer(apache)

API WebServer

( jetty)

API WebServer(tomcat, jetty)

AppServer(thrift)

AppServer(thrift)

Monitoring(Cloumon)

RDBMS(MySQL)

Hadoop: 30대Cloudata: 18대Crawler: 10대Search: 4대API: 4대

젂체 시스템 구성

Data Storage(HBase)

Page 34: Jco 소셜 빅데이터_20120218

개발 문화

대표이사

데이터 수집, 검색엔짂, 서비스 웹 화면

데이터 아키텍트 데이터 붂석, Bamboo, Flume, 서버 모듈 개발, 서비스 웹 화면

시스템 아키텍트 Hadoop, HBase, Hive,서버 모듈 개발, 서비스 웹 화면

시니어 개발자 Hadoop, Hive, Cloumon서버 모듈 개발, 서비스 웹 화면

주니어 개발자Hadoop, Flume, HBase서버 모듈 개발, 서비스 웹 화면

Page 35: Jco 소셜 빅데이터_20120218

빅데이터를 다루기 위해서는?

• BigData는 단순히 많은 데이터를 붂석하는 것이 아니다.• 붂석 뿐만 아니라 시스템, 서비스 자체가 이미 BigData에 대한 적응 능력이

있어야 한다.• 시스템, 서비스를 기획, 개발, 운영하는 조직도 BigData를 다루는 능력이 있

어야 한다.• BigData는 하나의 솔루션으로 해결할 수 없으며 요구사항, Data의 성격 등

에 따라 다양한 솔루션으로 조합되어야 한다.• 오픈 소스 중심의 소프트웨어 스택을 구축, 운영하기 위해서는 내부 기술력

을 갖추어야 한다. 외부 시스템 구축 회사나 벤더에 의졲해서는 안 된다.• 한번 구축하고 관리만 하면 되는 시스템이 아니라 지속적으로 짂화시켜 나

가야 하는 시스템이다.• 단기갂(6개월 ~ 1년 이내)에 젂체 시스템을 구축하고자 하는 욕심은 버려

야 한다.• 처음의 실패를 두려워하지 말고 지속적으로 기술 내재화 및 시스템을 짂화

시켜야 한다.• 오픈 소스 검증에 시갂을 허비하기 보다는 작게라도 실행에 옮기는 것이

중요하다.• 내부적으로 구축된 솔루션은 가능하면 공개하는 것이 좋다.

Page 36: Jco 소셜 빅데이터_20120218

감사합니다.

[email protected]

www.jaso.co.kr

www.seenal.com