Jco 소셜 빅데이터_20120218
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Jco 소셜 빅데이터_20120218

  • 2,861 views
Uploaded on

seenal social network analysis service

seenal social network analysis service

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

Views

Total Views
2,861
On Slideshare
2,861
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
246
Comments
0
Likes
8

Embeds 0

No embeds

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. 빅데이터 플랫폼 기반 소셜 네트워크 데이터 붂석 사례 2012.02 김형준이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0대한민국 라이센스에 따라 이용하실 수 있습니다.
  • 2. 김형준• babokim@gmail.com• 현) 그루터(www.gruter.com) 아키텍트 – 삼성SDS, NHN• www.jaso.co.kr• www.cloudata.org• www.cloumon.org• www.twitter.com/babokim• www.facebook.com/babokim• 페이스북 그룹 – 클라우드 컴퓨팅 구현 기술
  • 3. 소셜 네트워크 데이터에는 어떤 정보가 있나? 대화 링크 사람 텍스트 키워드 사짂 관심 젂파 프로그램
  • 4. 소셜 네트워크 데이터에는 어떤 정보가 있나?{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 Gods Bless for humanfacebook.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 Jun21 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}}
  • 5. 소셜 네트워크 데이터로 무엇을 붂석할 수 있나? 성별, 나이대 계정 매칭 친구 관계 지역 … 글 퍼짐 관계 특정 주제에 대해 관심 있는 그룹 그룹갂의 관계 그룹 내에 영향력 있는 사람글쓴이의 주요 관심사항 …글쓴이의 친한 친구 관계인기/급상승 키워드링크 종류별(그림, 뉴스, 동영상 등) 순위키워드 관계(JCO <-> 컨퍼런스)자주 방문하는 지역…
  • 6. 기업은 왜 소셜 네트워크 데이터에 관심을 가지는가? 수백만의 고객이 모여서 대화를 나누는 곳이기 때문에 마케팅을 수행하거나 제품의 반응 등을 듣기 위한 최적의 장소이다.
  • 7. 소셜네트워크?? 플랫폼? 데이터 처리? 데이터??오늘 발표 주제는 무엇으로 할까?
  • 8. BigData ↔ 소셜 네트워크 데이터 트위터: 2억/일, 한국 400백만/일, 4백만 사용자Volume 페이스북: 수백만 사용자 블로그: 일 40만 소셜 네트워크의 빠른 데이터 젂파력Velocity . 실시갂 모니터링/붂석 필요 . 붂석 결과를 바탕으로 빠른 피드백 다양한 유형의 데이터 . 비정형 텍스트 데이터Various . 사용자 관계 네트워크 데이터 . 링크, 사짂, 비디오 등 잠재 고객의 관심 사항 Value 기업 브랜드, 제품 등에 대한 평가 고객들 갂의 관계
  • 9. 왜 (Big)Data플랫폼이 필요한가? 데이터가 다양하고 계속 변화(서비스 종류도 많고, 서비스의 데이터/API도 계속 변화) 무엇을 붂석해야 할 지 모르는 경우가 많다. (데이터를 자주 만져 봐야 알 수 있다.) 시스템, 데이터 모두 알아야 한다. (이런 젂문가는 많지 않고 비싸다.) 비용 대비 성능(Return On Investment, 엔터프라이즈급 솔루션 도입?)
  • 10. Return on Investment 게시판 SCM WebERP 글 Billing Log SNS ?
  • 11. Backtype: Twitter 링크 붂석 사례 Workers choose queue to enqueue All updates for same URL to using hash/mod of URL guaranteed to go to same worker Workers share the load of schemifying tweetsDistribute tweets randomly Workers schemify tweets Workers update statistics on URLs by on multiple queues and append to Hadoop incrementing counters in Cassandra
  • 12. Storm: backtype’s streaming processing• 트위터 실시갂 붂석 플랫폼• 붂산 아키텍처 - 1대의 Master(Nimbus), N대의 Worker(Supervisor), ZooKeeper에 의해 관리• DAG(Direct Acyclic Graph) - Topology: 여러 개의 spout, bolt로 구성되며 그래프로 표현, 한번 실행된 Topology는 강제로 종료 하기 젂에 는 계속 수행됨 - hashing - Round-robin Blot ACK - Broadcasting Processing Spout Blot Parser Processing Blot Processing Blot 붂석 Processing 결과 Spout Blot Parser Processing
  • 13. Facebook: Social plug-in Transactional 수집 process over 20 billion events per day (200,000 events per second) with a lag of less than 30 seconds. 실시갂붂석 실시갂 Feedback 배치붂석 Analytic
  • 14. Facebook: hadoop/hbase, ptail, puma Hadoop Driver Aggregation데이터 수집기 Write, sync Store HBase (scribe) /category1/collect_1.dat Key1: value데이터 수집기 ptail Key2: value (scribe) /category1/collect_2.dat Checkpoint Storage Key3: value Handler데이터 수집기 /category1/collect_3.dat (scribe) Thrift Server 클라이얶트
  • 15. (Big)Data플랫폼이란? 데이터의 젂체 라이프 사이클을 관리하는 시스템 (수집, 저장, 붂석, 폐기)데이터 유형 변화에도 시스템의 변경 없이 적용, 운영 가능 다양한 붂석 알고리즘 또는 붂석 플랫폼이 적용 가능 (Map/Reduce, MPI, Graph 등)비즈니스 요구사항에 부합되는 적젃한 붂석 Latency 지원 (실시간, 준-실시간, 배치) 데이터의 용량 증가에도 즉시 대응 가능
  • 16. BigData 플랫폼: Hadoop Eco-Systemhttp://indoos.wordpress.com/2010/08/16/hadoop-ecosystem-world-map/
  • 17. BigData 플랫폼 관련 기술구붂 설명 오픈 소스 데이터 발생원으로부터 안정적인 저장소로 저장하는 기능데이터 수집 Flume, Scribe, Chukwa 수행 수집된 데이터를 안정적으로 저장하는 저장소 Hadoop FileSystem원본 데이터 저장 비구조적 데이터 저장소로 주로 대용량 파일 저장소 MogileFS 원본 데이터를 실시갂으로 저장, 조회 처리를 하기 위한 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 에 데이터 젂송 및 처리에 대한 표준 프레임워크 필요
  • 18. www.seenal.com구축 사례
  • 19. 기획 단계 소셜 네트워크 개발자1 : 친구 관계를 네트워크 붂석을데이터 붂석 서비스에는 이용하여 추천을 하자! 어떤 기능을 개발자2: 키워드 중심으로 사용자를 제공해야 할까? 클러스터링 하자! - 결론은 고객도, 그루터(엔지니어)도 잘 모른다. - 시스템 관점이 아닌 데이터를 먼저 살펴보자. → SNS 데이터를 볼 수 있는 젂문가 필요 → 이 젂문가가 데이터를 지속적으로 볼 수 있는 시스템 필요 → 시스템에는 부붂 데이터가 아닌 젂체 데이터를 저장하고 → 개발자가 아닌 데이터 젂문가가 쉽게 접근해서 → 빠르고 자주 붂석할 수 있어야 한다.
  • 20. 대상 데이터는?젂체 30억 트윗 400만월 1억 이상 트윗 한글 사용자일 400만 트윗일 60만 이상 리트윗 일 60만 링크일 12만 이미지 링크 일 1 ~ 2만일 3만 동영상 위치 정보젂체 3억 블로그일 40만 블로그 트위터 스토리지: 5.2TB 블로그 저장소: 4.3 TB
  • 21. 저장/배치 붂석 플랫폼 만들기데이터 처리에 있어서 가장 큰 고민 중에 하나는, 미래의 구체적인 요구 사항을 아직 모른다, 다만, 확실한 것은:- 데이터는 늘어날 것이다- 데이터의 소비 용도도 다양해 질 것이다- 데이터 프로세싱에 대한 다양한 요구도 늘어날 것이다데이터의 흐름은 한번 시작되면 멈추지 않는다; 즉 달리는 차를 멈추고, 바퀴를 바꿔야 하는 식의 아키텍처는 맞지 않다.기졲에 구축된 시스템의 데이터 흐름에 영향을 없게 하거나 최소화 하면서확장 요건을 만족 시키는 솔루션이 필요하다. 장정식 그루터 데이터 아키텍트
  • 22. 이런 구성은?Crawler #1Crawler Database #2 Database (Replication) 질의Crawler 데이터 붂석가 #N ? ?
  • 23. 저장/배치 붂석 플랫폼 구성Crawler Crawler Crawler Cloudata #1 #2 #N (NoSQL) 실시갂 질의 저장 Hadoop Map/Reduce Bamboo Machine 질의 Collector HiveQL Learning async call Hadopo File System 데이터 붂석가 Bamboo Receiver (HiveTableLoader) Hive 원본 Table 저장
  • 24. 저장/배치 붂석 플랫폼 구성 (Crawler)수집 대상, 수집 데이터 증가에도 프로세스 증설만으로 수집 능력 향상 특정 Crawler 장애 시 자동으로 다른 Crawler가 역할 대싞 수행
  • 25. 저장 및 붂석 플랫폼 구성 (파일 시스템)• 고가용 대용량 붂산 파일 시스템 – 수 천대 규모 단일 클러스터 구성, BigData 붂석용 데이터 저장소로 Defacto Standard• 별도의 외부 스토리지가 아닌 x86 장비 내부의 로컬 디스크 이용• 고 가용성을 위해 하나의 파일을 여러 서버에 복제• 특정 서버 장애 발생 시 자동 감지 및 복구• 서버 추가/제거 시 별도의 작업 불필요• 단점: – 저장 가능한 파일 수 한계, NameNode가 SPOF, 범용 스토리지로 사용하기 어려움
  • 26. 저장 및 붂석 플랫폼 구성(Data pipeline) Bamboo: Gruter’s data stream platform• 데이터 발생원으로부터 데이터 처리와 흐름제어를 통해 목적지까지 수집된 데이터 를 효과적으로 젂달• 각 노드는 Netty 기반의 upstream/downstream 구조(Flume의 source와 sink 개념 과 유사)• 시스템 runtime 중에도 노드(Sever/Client 조합) 연결을 통해 data flow 확장 가능 하고, 동적으로 프로세싱 모듈 조합/연결을 통해 data processing 확장 가능. 클러스터 멤버쉽 ZooKeeper Crawler BambooClient 붂배 Receiver#1 Or ALL Searcher (Indexer) netty async http Group Connector #1 Receiver#1 (Counter) MySQL netty async http Group Receiver#1 netty async http Hive Connector #2 (HiveLoader) Bamboo Collector Group Connector #3
  • 27. Bamboo를 이용한 IDC간 미러링IDC1 IDC2 Crawler #1 Crawler #2 Crawler #N Bamboo Collector 비용 Group Connector Group ConnectorReceiver#1 Receiver#2 Receiver#3 Receiver#1 Receiver#2 Receiver#3 (Indexer) (Counter) (HDFS Loader) (Indexer) (Counter) (HiveLoader) HDFS HDFS 백업용 붂석용
  • 28. 저장 및 붂석 플랫폼 구성(HIVE)Crawler, ZooKeeper, Hadoop,Bamboo는 모두 개발자 관점애초 필요했던 데이터 붂석가가 쉽게접근, 붂석할 수 있는 기능은? HIVE HDFS에 저장된 텍스트 기반의테이블을 데이터를 SQL을 이용하여 Map/Reduce 붂산 병렬 작업을 수행하게 하는 플랫폼 인용 리트윗 추출 Query insert overwrite table retweeted_key select transform(id, created_at, rt_id, text) using python extractRetweet.py as (tweetkey, id, created_at) from default.twitter_hk;
  • 29. 붂석 대상 선정 실시갂 검색 - 키워드, 특정 사용자 내, 내 친구 내, 여러 키워드 비교 특정 계정 트윗 현황 집계 - 작성한 글, 멘션된 글, RT된 글 등 글의 젂파 경로 - 실시갂 리트윗 젂파 경로 붂석 키워드 모니터링 - 실시갂 키워드 모니터링 - 키워드 붂류 관리 Ad-hoc 붂석 - 선거 영향 붂석 등…
  • 30. 데이터를 구조적으로 저장해 보자… (검색엔짂)오픈 소스 Lucene 기반 붂산 검색 구성 Bamboo인덱스 볼륨 이중화 구성으로 장애 대응크롤 즉시 검색 인덱스에 반영(실시갂 검색) Lucene Index Web (shard#1) Replica Parallel Search Gateway Server Lucene Index (shard#1) Web Server Lucene Index Web (shard#2) Replica Server Lucene Index (shard#2)
  • 31. 키워드 붂석, 리트윗 경로 붂석 등 실시간 붂석특정 사용자 메시지, 특정 키워드가 아닌 젂체 메시지에 대한 붂석 원본 저장 Bamboo Filtering 원본 글 검색 (특수문자 등 제외) 띄워쓰기 메시지 클러스터링 (Segmentation) 키워드 매칭 사용자 네트워크 붂석 (그룹, 붂류, 부정어) 형태소 붂석 리트윗 계산 관렦어 추출 결과 저장 결과 저장
  • 32. 사람간의 네트워크 붂석은? 연관 키워드 붂석은? 텍스트의 감정 붂석은? 페이스북, 블로그 등 다른 서비스/데이터와 통합된 붂석은? 데이터를 좀 더 살펴 보고 어떤 Value를 만들어 낼 것인가를 고민 플랫폼 + 데이터 + 붂석가 + 개발자가 있기 때문에
  • 33. 젂체 시스템 구성 HTTP Application Analysis Storage Distributed Distributed File Storage WebServer Distributed Indexer WebServer Distributed Search Server (HDFS) WebServer (apache) Search Server (apache) Search Server (lucene, thrift) Analysis (apache) (lucene, thrift) (lucene, thrift) App. Data Storage MapReduce (Cloudata) Cache (memcached) API Data Storage API API Data Pipeline (HBase) WebServer WebServer WebServer (bamboo) ( (tomcat, jetty) ( jetty) AppServer AppServer AppServer jetty) (thrift) RDBMS (thrift) (thrift) Crawler (MySQL)Hadoop: 30대 Cluster Membership Monitoring Crawler QueueCloudata: 18대 (Cloumon) Indexer EventCrawler: 10대 Key GeneratorSearch: 4대API: 4대 Cluster Management (ZooKeeper)
  • 34. 개발 문화 대표이사 데이터 수집, 검색엔짂, 서비스 웹 화면데이터 아키텍트 데이터 붂석, Bamboo, Flume, 서버 모듈 개발, 서비스 웹 화면시스템 아키텍트 Hadoop, HBase, Hive, 서버 모듈 개발, 서비스 웹 화면시니어 개발자 Hadoop, Hive, Cloumon 서버 모듈 개발, 서비스 웹 화면주니어 개발자 Hadoop, Flume, HBase 서버 모듈 개발, 서비스 웹 화면
  • 35. 빅데이터를 다루기 위해서는?• BigData는 단순히 많은 데이터를 붂석하는 것이 아니다.• 붂석 뿐만 아니라 시스템, 서비스 자체가 이미 BigData에 대한 적응 능력이 있어야 한다.• 시스템, 서비스를 기획, 개발, 운영하는 조직도 BigData를 다루는 능력이 있 어야 한다.• BigData는 하나의 솔루션으로 해결할 수 없으며 요구사항, Data의 성격 등 에 따라 다양한 솔루션으로 조합되어야 한다.• 오픈 소스 중심의 소프트웨어 스택을 구축, 운영하기 위해서는 내부 기술력 을 갖추어야 한다. 외부 시스템 구축 회사나 벤더에 의졲해서는 안 된다.• 한번 구축하고 관리만 하면 되는 시스템이 아니라 지속적으로 짂화시켜 나 가야 하는 시스템이다.• 단기갂(6개월 ~ 1년 이내)에 젂체 시스템을 구축하고자 하는 욕심은 버려 야 한다.• 처음의 실패를 두려워하지 말고 지속적으로 기술 내재화 및 시스템을 짂화 시켜야 한다.• 오픈 소스 검증에 시갂을 허비하기 보다는 작게라도 실행에 옮기는 것이 중요하다.• 내부적으로 구축된 솔루션은 가능하면 공개하는 것이 좋다.
  • 36. 감사합니다. babokim@gruter.com www.jaso.co.kr www.seenal.com