48
하둡 및 하둡 에코 시스템을 이용한 데이터 플랫폼 아키텍처 적용 사례 김형준 / GRUTER

234 deview2013 김형준

Embed Size (px)

Citation preview

Page 1: 234 deview2013 김형준

하둡����������� ������������������  및����������� ������������������  하둡����������� ������������������  에코����������� ������������������  시스템을����������� ������������������  이용한����������� ������������������  ����������� ������������������  데이터����������� ������������������  플랫폼����������� ������������������  아키텍처����������� ������������������  적용����������� ������������������  사례����������� ������������������  

김형준����������� ������������������  /����������� ������������������  GRUTER����������� ������������������  

Page 2: 234 deview2013 김형준

CONTENTS����������� ������������������  

1.����������� ������������������  엔터프라이즈의����������� ������������������  빅데이터����������� ������������������  

2.����������� ������������������  e-Commerce����������� ������������������  적용����������� ������������������  사례����������� ������������������  

3.����������� ������������������  보안����������� ������������������  분석����������� ������������������  플랫폼����������� ������������������  사례����������� ������������������  

4.����������� ������������������  바이오����������� ������������������  인포메틱스����������� ������������������  사례����������� ������������������  

5.����������� ������������������  온라인����������� ������������������  컨텐츠����������� ������������������  서비스����������� ������������������  사례����������� ������������������  ����������� ������������������  

Page 3: 234 deview2013 김형준

엔터프라이즈의����������� ������������������  빅데이터����������� ������������������  ����������� ������������������  

Page 4: 234 deview2013 김형준

엔터프라이즈의����������� ������������������  IT����������� ������������������  환경����������� ������������������  

• ����������� ������������������  현재����������� ������������������  엔터프라이즈����������� ������������������  IT����������� ������������������  환경은����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  빅데이터를����������� ������������������  적용하기����������� ������������������  어려운����������� ������������������  환경����������� ������������������  

IT 기획 및 관리 중심, 실행은 아웃 소싱(BAD)

IT 자회사가 관리 및 실행(BAD)

주요 운영/개발은 직접 수행, 일부 외주(GOOD)

대부분 직접 수행(GOOD)

Page 5: 234 deview2013 김형준

빅데이터����������� ������������������  프로젝트의����������� ������������������  성공����������� ������������������  요소����������� ������������������  

• ����������� ������������������  분석����������� ������������������  결과����������� ������������������  가치����������� ������������������  >����������� ������������������  분석����������� ������������������  비용����������� ������������������  • ����������� ������������������  무엇을����������� ������������������  분석할����������� ������������������  것인가에����������� ������������������  대한����������� ������������������  고민����������� ������������������  • ����������� ������������������  지속적인����������� ������������������  분석����������� ������������������  결과����������� ������������������  개선����������� ������������������  활동(튜닝)����������� ������������������  • ����������� ������������������  IT����������� ������������������  부서가����������� ������������������  아닌����������� ������������������  실제����������� ������������������  데이터����������� ������������������  사용부서가����������� ������������������  주도����������� ������������������  

• ����������� ������������������  !잘����������� ������������������  작성된����������� ������������������  프로젝트����������� ������������������  계획서����������� ������������������  • ����������� ������������������  실행할����������� ������������������  수����������� ������������������  있는����������� ������������������  기술력����������� ������������������  

Page 6: 234 deview2013 김형준

빅데이터����������� ������������������  프로젝트����������� ������������������  진행����������� ������������������  

시스템 기획 (분석 대상, 데이터, 알고리즘)

시스템 비용 및 ROI 산정

업체 선정

개발

운영

시스템 기획 (분석 도메인만 결정, 마케팅, 생산성 향상, ... )

관련 데이터 수집 (기업 내부, 외부)

3 ~ 6개월 이상 소요

데이터 가지고 놀기

가치 발굴

시스템에 반영

지속적인 활동

Page 7: 234 deview2013 김형준

결론!!!����������� ������������������  

• ����������� ������������������  기존의����������� ������������������  데이터����������� ������������������  분석과����������� ������������������  현재의����������� ������������������  빅데이터의����������� ������������������  가장����������� ������������������  큰����������� ������������������  차이는����������� ������������������  ����������� ������������������  

• ����������� ������������������  데이터����������� ������������������  크기도����������� ������������������  아니고,����������� ������������������  종류도����������� ������������������  아니고,����������� ������������������  속도도����������� ������������������  아닌����������� ������������������  ����������� ������������������  

• ����������� ������������������  기업����������� ������������������  스스로����������� ������������������  데이터를����������� ������������������  적극적으로����������� ������������������  이용해서����������� ������������������  제품����������� ������������������  개발,����������� ������������������  서비스����������� ������������������  기능,����������� ������������������  마케팅����������� ������������������  등에����������� ������������������  차별화되고����������� ������������������  경쟁����������� ������������������  우위에����������� ������������������  있는����������� ������������������  무기를����������� ������������������  가지는����������� ������������������  것.����������� ������������������  

Page 8: 234 deview2013 김형준

E-Commerce����������� ������������������  사례����������� ������������������  (실시간����������� ������������������  분석����������� ������������������  플랫폼)����������� ������������������  

Page 9: 234 deview2013 김형준

����������� ������������������  e-Commerce����������� ������������������  데이터����������� ������������������  분석����������� ������������������  

• ����������� ������������������  요구사항은?����������� ������������������  

Page 10: 234 deview2013 김형준

현실은?����������� ������������������  

• ����������� ������������������  가장����������� ������������������  기본적인����������� ������������������  로그����������� ������������������  조차도����������� ������������������  일����������� ������������������  단위����������� ������������������  분석����������� ������������������  • ����������� ������������������  HTTP����������� ������������������  LOG����������� ������������������  등����������� ������������������  

• ����������� ������������������  비즈니스에����������� ������������������  중요한����������� ������������������  데이터는����������� ������������������  로그도����������� ������������������  없음����������� ������������������  • ����������� ������������������  일부����������� ������������������  로그는����������� ������������������  외부����������� ������������������  업체로����������� ������������������  전달 ����������� ������������������  ����������� ������������������  

Page 11: 234 deview2013 김형준

전체����������� ������������������  시스템����������� ������������������  아키텍처����������� ������������������  

Page 12: 234 deview2013 김형준

실시간����������� ������������������  분석����������� ������������������  시스템����������� ������������������  구성����������� ������������������  예����������� ������������������  

임시 저장소인 Queue 장애 시 방안?

http://highlyscalable.wordpress.com/2013/08/20/in-stream-big-data-processing/

분석 중 일부 분석 서버 장애 시 임시 분석 결과는 어떻게?

분석 결과 저장소의 성능은? 분석 결과 서비스 제공 시 충분한 기능 제공?

Page 13: 234 deview2013 김형준

실시간����������� ������������������  분석����������� ������������������  어려움����������� ������������������  #1����������� ������������������  

• ����������� ������������������  중복,����������� ������������������  유실,����������� ������������������  성능����������� ������������������  모두를����������� ������������������  만족시키기����������� ������������������  어려움����������� ������������������  • ����������� ������������������  이중화된����������� ������������������  큐와����������� ������������������  체크����������� ������������������  포인팅����������� ������������������  기능이����������� ������������������  핵심����������� ������������������  • ����������� ������������������  체크����������� ������������������  포인팅을����������� ������������������  자주����������� ������������������  하면����������� ������������������  성능����������� ������������������  저하����������� ������������������  ����������� ������������������  • ����������� ������������������  가끔����������� ������������������  하면����������� ������������������  데이터����������� ������������������  유실이����������� ������������������  높아짐����������� ������������������  

• ����������� ������������������  성능����������� ������������������  • ����������� ������������������  대량의����������� ������������������  데이터,����������� ������������������  분석의����������� ������������������  복잡성(다양한����������� ������������������  메타����������� ������������������  데이터와����������� ������������������  연계����������� ������������������  등)����������� ������������������  

• ����������� ������������������  운영����������� ������������������  관리����������� ������������������  • ����������� ������������������  무정지로����������� ������������������  운영����������� ������������������  되어야����������� ������������������  함����������� ������������������  • ����������� ������������������  프로그램����������� ������������������  배포����������� ������������������  

• ����������� ������������������  분석����������� ������������������  결과����������� ������������������  저장����������� ������������������  • ����������� ������������������  저장����������� ������������������  주기,����������� ������������������  체크����������� ������������������  포인트����������� ������������������  • ����������� ������������������  저장소����������� ������������������  성능,����������� ������������������  기능����������� ������������������  

Page 14: 234 deview2013 김형준

실시간����������� ������������������  분석����������� ������������������  어려움����������� ������������������  #2����������� ������������������  

• ����������� ������������������  시간����������� ������������������  관리����������� ������������������  • ����������� ������������������  분산된����������� ������������������  환경의����������� ������������������  시간����������� ������������������  동기화����������� ������������������  • ����������� ������������������  Time����������� ������������������  window����������� ������������������  동기화����������� ������������������  • ����������� ������������������  Data����������� ������������������  time����������� ������������������  vs.����������� ������������������  System����������� ������������������  time����������� ������������������  

• ����������� ������������������  분석����������� ������������������  로직����������� ������������������  구현����������� ������������������  • ����������� ������������������  SQL����������� ������������������  기반����������� ������������������  • ����������� ������������������  프로그램����������� ������������������  기반����������� ������������������  

• ����������� ������������������  플랫폼들의����������� ������������������  조합����������� ������������������  • ����������� ������������������  Flume,����������� ������������������  Storm,����������� ������������������  Kafka����������� ������������������  등����������� ������������������  • ����������� ������������������  각각은����������� ������������������  HA����������� ������������������  등에����������� ������������������  대한����������� ������������������  기능����������� ������������������  제공,����������� ������������������  But����������� ������������������  조합����������� ������������������  시����������� ������������������  불협화음����������� ������������������  

• ����������� ������������������  서버����������� ������������������  사이징����������� ������������������  • ����������� ������������������  Agent/Collelctor����������� ������������������  ����������� ������������������  댓수����������� ������������������  비율,����������� ������������������  CPU/Network����������� ������������������  등����������� ������������������  

Page 15: 234 deview2013 김형준

구축된����������� ������������������  실시간����������� ������������������  플랫폼(자체����������� ������������������  개발)����������� ������������������  

ZooKeeper 분석 결과 저장소

(HBase)

Realtime Server

Partition Proxy Partitioner Processor

Engine

User Processor Replicator Queue

Time Window Manager

(Master Role) Flume Collector

Realtime Client

Partition #2

Partition #1

Partition #3

Flume Collector

Realtime Client

Dimension Data

memory

Page 16: 234 deview2013 김형준

특징����������� ������������������  #1����������� ������������������  

• ����������� ������������������  고정된����������� ������������������  크기의����������� ������������������  클러스터����������� ������������������  파티션����������� ������������������  • ����������� ������������������  데이터����������� ������������������  파티션����������� ������������������  처리����������� ������������������  쉬운����������� ������������������  장점����������� ������������������  • ����������� ������������������  서버����������� ������������������  추가/제거����������� ������������������  단점은����������� ������������������  Shell����������� ������������������  명령을����������� ������������������  통해����������� ������������������  실행����������� ������������������  

• ����������� ������������������  파티션����������� ������������������  이중화����������� ������������������  • ����������� ������������������  하나의����������� ������������������  파티션은����������� ������������������  두����������� ������������������  개의����������� ������������������  서버가����������� ������������������  담당(Master/Slave)����������� ������������������  

• ����������� ������������������  분산����������� ������������������  실시간����������� ������������������  분석에����������� ������������������  필요한����������� ������������������  다양한����������� ������������������  모듈����������� ������������������  기본����������� ������������������  제공����������� ������������������  • ����������� ������������������  분산된����������� ������������������  서버들����������� ������������������  사이에����������� ������������������  동기화된����������� ������������������  Flush����������� ������������������  기능����������� ������������������  • ����������� ������������������  Time����������� ������������������  동기화����������� ������������������  기능,����������� ������������������  Esper����������� ������������������  연계����������� ������������������  모듈����������� ������������������  

• ����������� ������������������  WorkGroup����������� ������������������  • ����������� ������������������  하나의����������� ������������������  분석을����������� ������������������  수행하기����������� ������������������  위해서는����������� ������������������  여러����������� ������������������  개의����������� ������������������  분석����������� ������������������  모듈이����������� ������������������  연결����������� ������������������  되어야����������� ������������������  함.����������� ������������������  

• ����������� ������������������  하나의����������� ������������������  클러스터로����������� ������������������  여러����������� ������������������  개의����������� ������������������  분석����������� ������������������  업무를����������� ������������������  동시에����������� ������������������  수행����������� ������������������  

Page 17: 234 deview2013 김형준

특징����������� ������������������  #2����������� ������������������  

• ����������� ������������������  자체����������� ������������������  개발����������� ������������������  • ����������� ������������������  공개된����������� ������������������  실시간����������� ������������������  분석����������� ������������������  솔루션은����������� ������������������  다음����������� ������������������  기능����������� ������������������  제공����������� ������������������  

• ����������� ������������������  데몬����������� ������������������  서버,����������� ������������������  데이터����������� ������������������  송수신����������� ������������������  RPC����������� ������������������  • ����������� ������������������  프로그램����������� ������������������  모델,����������� ������������������  데이터����������� ������������������  파티셔닝,����������� ������������������  Queue와����������� ������������������  연동����������� ������������������  

• ����������� ������������������  활용����������� ������������������  가능한����������� ������������������  조각����������� ������������������  모음은����������� ������������������  대부분����������� ������������������  오픈����������� ������������������  소스로����������� ������������������  나와����������� ������������������  있음����������� ������������������  • ����������� ������������������  RPC:����������� ������������������  Thrift,����������� ������������������  Avro,����������� ������������������  Protobuf,����������� ������������������  Netty����������� ������������������  • ����������� ������������������  Event,����������� ������������������  Cluster����������� ������������������  Membership,����������� ������������������  Synchronization:����������� ������������������  ZooKeeper����������� ������������������  

• ����������� ������������������  Query����������� ������������������  Processing:����������� ������������������  Esper����������� ������������������  • ����������� ������������������  Queue:����������� ������������������  Kafka,����������� ������������������  RabbitMQ,����������� ������������������  ZeroMQ����������� ������������������  

Page 18: 234 deview2013 김형준

데이터����������� ������������������  분석����������� ������������������  흐름����������� ������������������  

Log Parsing

Log Parsing

Log Parsing

log data

URL, Count(1) Group by URL

URL, Count(1) Group by URL

Count (Distinct User)

Count (Distinct User)

HBase Table

TOP 100 Order by count

Desc

hash(url) time batch 60 sec.

hash(user_id)

time batch 20 sec. WorkGroup #2 (LogType=User)

WorkGroup #1 (LogType=URL)

IP-City Data Load in memory

Page 19: 234 deview2013 김형준

결론����������� ������������������  

• ����������� ������������������  실시간����������� ������������������  분석은����������� ������������������  대세이지만����������� ������������������  많은����������� ������������������  난관이����������� ������������������  존재����������� ������������������  • ����������� ������������������  고객의����������� ������������������  요구(정합성,����������� ������������������  안정성����������� ������������������  모두����������� ������������������  만족����������� ������������������  등)����������� ������������������  • ����������� ������������������  메타����������� ������������������  정보(JOIN)����������� ������������������  처리����������� ������������������  성능����������� ������������������  • ����������� ������������������  운영의����������� ������������������  어려움(항상����������� ������������������  데이터가����������� ������������������  흘러����������� ������������������  다님)����������� ������������������  

• ����������� ������������������  분석����������� ������������������  대상����������� ������������������  데이터의����������� ������������������  속성,����������� ������������������  분석����������� ������������������  로직����������� ������������������  등에����������� ������������������  따라����������� ������������������  적절한����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  플랫폼����������� ������������������  선택����������� ������������������  

• ����������� ������������������  플랫폼은����������� ������������������  기본만����������� ������������������  제공����������� ������������������  • ����������� ������������������  많은����������� ������������������  것을����������� ������������������  그����������� ������������������  위에����������� ������������������  만들어야����������� ������������������  함����������� ������������������  • ����������� ������������������  적절한����������� ������������������  플랫폼이����������� ������������������  없으면����������� ������������������  만드는����������� ������������������  것도����������� ������������������  방법����������� ������������������  

Page 20: 234 deview2013 김형준

보안����������� ������������������  분석����������� ������������������  플랫폼����������� ������������������  사례����������� ������������������  (데이터����������� ������������������  수집����������� ������������������  및����������� ������������������  검색)����������� ������������������  

Page 21: 234 deview2013 김형준

보안����������� ������������������  데이터����������� ������������������  분석����������� ������������������  

데이터를 수집해서 통합 저장소에 저장한 다음 분석을 통해서 보안 위협을 찾아내고 모델을 만들어서 실시간 감지 및 대응 시스템에 적용해서 보안 공격에 대비한다 이 과정을 지속적으로 반복하면서 더 강력하고 지능적인 모델을 만들어서 변화하는 보안 위협에 대응한다

Page 22: 234 deview2013 김형준

전체����������� ������������������  아키텍처����������� ������������������  

Data source/collector (various log data)

Data Source (Web Server)

Flume Agent

Thrift Source

Thrift Sink

Temporary

Data collector/ real-time analysis

Flume Collector

Logical Node

Thrift Source

Pipeline-Sink

Hadoop

NoSQL (HBase)

Search

Real-time Analysis

primary storage(File/Structured), near real-time analysis

Hadoop DataNode

HBase RegionServer

Cluster coordinator

Search engine

ElasticSearch

Semi-Structured

Origin File

Index

Real-time analysis result storage (File/Structured)

Hadoop DataNode

HBase RegionServer Semi-Struc

tured

Origin File

Cluster Monitoring

Batch analysis/storage

Hadoop MapReduce

Origin File

Cloustream

Hive

Hadoop DataNode

Analysis Result

Near real-time analysis

Batch analysis

Data source/collector (standard protocols suc

h as FTP, HTTP)

Data Source

Flume Agent

FTP/ HTTP

Thrift Sink

Temporary

Oracle/MySQL RDB

Cloumon

Rule Manager

ARM Zookeeper

Page 23: 234 deview2013 김형준

데이터����������� ������������������  수집����������� ������������������  

agent collector data

storage

data

agent collector

. . . . . .

• ����������� ������������������  다양한����������� ������������������  데이터����������� ������������������  발생원����������� ������������������  =����������� ������������������  유연한����������� ������������������  수집����������� ������������������  시스템����������� ������������������  • ����������� ������������������  실시간����������� ������������������  수집����������� ������������������  =����������� ������������������  이벤트����������� ������������������  스트리밍����������� ������������������  • ����������� ������������������  다양한����������� ������������������  프로세싱����������� ������������������  =����������� ������������������  pluggable����������� ������������������  pipeline����������� ������������������  구조����������� ������������������  • ����������� ������������������  scalability,����������� ������������������  reliability,����������� ������������������  extensibility,����������� ������������������  manageability����������� ������������������  

• ����������� ������������������  Flume����������� ������������������  

Page 24: 234 deview2013 김형준

실시간����������� ������������������  데이터����������� ������������������  수집����������� ������������������  #1����������� ������������������  

• ����������� ������������������  Flume����������� ������������������  OG����������� ������������������  사용����������� ������������������  • ����������� ������������������  중앙����������� ������������������  집중����������� ������������������  관리����������� ������������������  기능이����������� ������������������  우수(NG에����������� ������������������  비해)����������� ������������������  • ����������� ������������������  도입����������� ������������������  당시����������� ������������������  NG는����������� ������������������  성숙된����������� ������������������  상태가����������� ������������������  아니었음����������� ������������������  

• ����������� ������������������  Tailing이����������� ������������������  쉽지����������� ������������������  않음����������� ������������������  • ����������� ������������������  기본����������� ������������������  제공����������� ������������������  Tailer는����������� ������������������  실제����������� ������������������  업무����������� ������������������  적용에����������� ������������������  한계����������� ������������������  ����������� ������������������  • ����������� ������������������  기존����������� ������������������  운영����������� ������������������  장비����������� ������������������  부하����������� ������������������  최소(CPU/Network����������� ������������������  등)����������� ������������������  

• ����������� ������������������  CPU����������� ������������������  5%이하,����������� ������������������  Memory����������� ������������������  32MB����������� ������������������  이하����������� ������������������  • ����������� ������������������  Checkpoint����������� ������������������  관리����������� ������������������  기능����������� ������������������  • ����������� ������������������  Agent����������� ������������������  재����������� ������������������  시작����������� ������������������  시����������� ������������������  Throttling����������� ������������������  기능����������� ������������������  

• ����������� ������������������  Network����������� ������������������  대역����������� ������������������  모두����������� ������������������  사용����������� ������������������  문제����������� ������������������  • ����������� ������������������  Rolling����������� ������������������  File에����������� ������������������  대한����������� ������������������  인식����������� ������������������  • ����������� ������������������  Windows����������� ������������������  2000����������� ������������������  Server?����������� ������������������  

Page 25: 234 deview2013 김형준

실시간����������� ������������������  데이터����������� ������������������  수집����������� ������������������  #2����������� ������������������  

• ����������� ������������������  다양한����������� ������������������  프로토콜����������� ������������������  및����������� ������������������  장비����������� ������������������  지원����������� ������������������  • ����������� ������������������  TCP,����������� ������������������  Syslog,����������� ������������������  SNMP����������� ������������������  등����������� ������������������  • ����������� ������������������  Linux,����������� ������������������  AIX,����������� ������������������  HP-UX,����������� ������������������  Solaris,����������� ������������������  Windows����������� ������������������  

• ����������� ������������������  유실/중복/성능����������� ������������������  모두����������� ������������������  만족하기����������� ������������������  어려움����������� ������������������  • ����������� ������������������  Collector����������� ������������������  이중화����������� ������������������  • ����������� ������������������  Agent����������� ������������������  ->����������� ������������������  Collector����������� ������������������  ->����������� ������������������  저장소까지����������� ������������������  저장����������� ������������������  후����������� ������������������  ACK(성능����������� ������������������  저하)����������� ������������������  

• ����������� ������������������  데이터����������� ������������������  수집이����������� ������������������  잘되고����������� ������������������  있는지����������� ������������������  모니터링����������� ������������������  어려움����������� ������������������  • ����������� ������������������  Component(Agent,����������� ������������������  Switch,����������� ������������������  Collector,����������� ������������������  저장소����������� ������������������  등)����������� ������������������  모니터링����������� ������������������  구성����������� ������������������  필요����������� ������������������  ->����������� ������������������  어려움����������� ������������������  

• ����������� ������������������  개발����������� ������������������  외부적인����������� ������������������  사항이����������� ������������������  더����������� ������������������  큰����������� ������������������  어려움����������� ������������������  • ����������� ������������������  방화벽����������� ������������������  해제����������� ������������������  • ����������� ������������������  Agent����������� ������������������  설치에����������� ������������������  대한����������� ������������������  거부감����������� ������������������  

• ����������� ������������������  시스템����������� ������������������  부하가����������� ������������������  70����������� ������������������  ~����������� ������������������  80%����������� ������������������  상태의����������� ������������������  장비는����������� ������������������  어떻게?����������� ������������������  ����������� ������������������  

Page 26: 234 deview2013 김형준

대용량����������� ������������������  데이터����������� ������������������  검색����������� ������������������  

• ����������� ������������������  요구사항����������� ������������������  • ����������� ������������������  전체����������� ������������������  수집����������� ������������������  데이터(수백GB/일),����������� ������������������  누적����������� ������������������  6개월����������� ������������������  보관,����������� ������������������  응답속도는����������� ������������������  10����������� ������������������  ~����������� ������������������  30초����������� ������������������  이내����������� ������������������  

• ����������� ������������������  현실은?����������� ������������������  • ����������� ������������������  상용����������� ������������������  솔루션은����������� ������������������  고가의����������� ������������������  비용,����������� ������������������  라이선스가����������� ������������������  트래픽����������� ������������������  중심����������� ������������������  • ����������� ������������������  일반적인����������� ������������������  검색����������� ������������������  솔루션(오픈소스����������� ������������������  솔루션����������� ������������������  포함)은����������� ������������������  서비스에����������� ������������������  맞춰져����������� ������������������  있어����������� ������������������  대용량,����������� ������������������  장기간����������� ������������������  데이터����������� ������������������  보관에는����������� ������������������  취약����������� ������������������  

• ����������� ������������������  아이디어����������� ������������������  • ����������� ������������������  검색����������� ������������������  클러스터����������� ������������������  이중화����������� ������������������  

• ����������� ������������������  최근����������� ������������������  데이터����������� ������������������  인덱스/검색용����������� ������������������  ->����������� ������������������  Native����������� ������������������  ElasticSearch����������� ������������������  • ����������� ������������������  과거����������� ������������������  대용량����������� ������������������  데이터����������� ������������������  보관/검색용����������� ������������������  ->����������� ������������������  ElasticSearch����������� ������������������  for����������� ������������������  Hadoop����������� ������������������  

Page 27: 234 deview2013 김형준

대용량����������� ������������������  데이터����������� ������������������  검색����������� ������������������  아키텍처����������� ������������������  

Server1

ElasticSearch

index1 (SAS or SATA)

Collector

HDFSSink

ElasticSearch

Sink

실시간 색인 클러스터(최신 데이터)

Hadoop FileSystem (for elastcisearch)

Application

Searcher

읽기 전용 클러스터(전체 데이터)

index7

index8

index9

index10

index11

index12

Hadoop FileSystem

(for Analytic)

Server2

ElasticSearch

index2 (SAS or SATA)

Index Migration

Tool

Server1 HDFS

Gateway

ElasticSearch

Server2 HDFS

Gateway

ElasticSearch

Page 28: 234 deview2013 김형준

실시간����������� ������������������  색인����������� ������������������  클러스터����������� ������������������  성능����������� ������������������  

• ����������� ������������������  테스트����������� ������������������  환경����������� ������������������  • ����������� ������������������  ElasticSearch����������� ������������������  서버����������� ������������������  5대����������� ������������������  

• ����������� ������������������  16GB,����������� ������������������  Quad����������� ������������������  Core����������� ������������������  *1����������� ������������������  ,����������� ������������������  SATA����������� ������������������  2TB����������� ������������������  *����������� ������������������  4����������� ������������������  • ����������� ������������������  부하����������� ������������������  생성����������� ������������������  서버����������� ������������������  5대����������� ������������������  • ����������� ������������������  테스트����������� ������������������  데이터:����������� ������������������  5.1억건,����������� ������������������  700GB(일일����������� ������������������  생성����������� ������������������  데이터)����������� ������������������  

• ����������� ������������������  인덱스����������� ������������������  성능����������� ������������������  • ����������� ������������������  14시간����������� ������������������  소요(1,000건����������� ������������������  단위로����������� ������������������  commit)����������� ������������������  • ����������� ������������������  10,159����������� ������������������  records/sec,����������� ������������������  14MB/sec����������� ������������������  

• ����������� ������������������  검색����������� ������������������  성능����������� ������������������  

검색 조건 인덱스 실행 중 인덱스 실행 X 특정 ip 조회 1,483 ms 4,886 ms 특정 ip, URL 조회 2,112 ms 8,677 ms 특정 ip, URL, 기간 조회 1,946 ms 1,670 ms

Page 29: 234 deview2013 김형준

읽기����������� ������������������  전용����������� ������������������  클러스터����������� ������������������  성능����������� ������������������  

• ����������� ������������������  테스트����������� ������������������  환경����������� ������������������  • ����������� ������������������  DataNode����������� ������������������  5대에����������� ������������������  ElasticSearch����������� ������������������  설치����������� ������������������  

• ����������� ������������������  대상����������� ������������������  데이터����������� ������������������  • 질의는����������� ������������������  검색����������� ������������������  결과����������� ������������������  처음����������� ������������������  500개만����������� ������������������  결과����������� ������������������  가져오는����������� ������������������  조건����������� ������������������  • ����������� ������������������  IP����������� ������������������  20개를����������� ������������������  랜덤하게����������� ������������������  선택해서����������� ������������������  질의(캐쉬����������� ������������������  효과����������� ������������������  없음)����������� ������������������  

ms

data

Page 30: 234 deview2013 김형준

바이오인포매틱스����������� ������������������  (Hadoop����������� ������������������  기반����������� ������������������  Genome����������� ������������������  데이터베이스)����������� ������������������  

Page 31: 234 deview2013 김형준

요구사항:����������� ������������������  Genome����������� ������������������  Browser용����������� ������������������  DB����������� ������������������  

http://www.ncbi.nlm.nih.gov/variation/tools/1000genomes

Page 32: 234 deview2013 김형준

Challenges����������� ������������������  

• ����������� ������������������  도메인����������� ������������������  이해의����������� ������������������  어려움����������� ������������������  • ����������� ������������������  AATCTATA����������� ������������������  AATCTATA����������� ������������������  AATCTATA����������� ������������������  …⋯����������� ������������������  ����������� ������������������  

• ����������� ������������������  수����������� ������������������  많은����������� ������������������  알고리즘����������� ������������������  및����������� ������������������  수식����������� ������������������  • ����������� ������������������  Maxam-Gilbert����������� ������������������  sequencing����������� ������������������  • ����������� ������������������  R-Tree����������� ������������������  

• ����������� ������������������  다양한����������� ������������������  Data����������� ������������������  format����������� ������������������  • ����������� ������������������  FASTA,����������� ������������������  SAM,����������� ������������������  BAM,����������� ������������������  SNP,����������� ������������������  CNV,����������� ������������������  Inversion����������� ������������������  ����������� ������������������  ����������� ������������������  Large����������� ������������������  InDel,����������� ������������������  Small����������� ������������������  InDel����������� ������������������  ����������� ������������������  

• ����������� ������������������  대용량����������� ������������������  레코드����������� ������������������  저장과����������� ������������������  검색����������� ������������������  (Read����������� ������������������  only)����������� ������������������  

Page 33: 234 deview2013 김형준

시스템����������� ������������������  구성����������� ������������������  

Hadoop DataNode

Data Server #1

Genome Unit #1

Disk Index

Data File

Memory Index

Data File

Index File

Data File

Index File

Data File

Index File

Data File

Index File

Hadoop DataNode

Data File

Index File

Data File

Index File

Data File

Index File

Data File

Index File

ZooKeeper

Server Cluster Membership

Cluster Configuration

Master Election

Meta Infomation

Index File

Index File

Index File

Master Server

Genome Allocation

Data Server Failover

Meta Management

Hadoop DataNode

Data File

Index File

Data File

Index File

Data File

Index File

Data File

Index File

Application Server

Genome Browser

Client

JDBC

Uploader

Indexer

Uploader

Page 34: 234 deview2013 김형준

결론����������� ������������������  

• ����������� ������������������  Hadoop을����������� ������������������  이용하여����������� ������������������  • ����������� ������������������  대용량����������� ������������������  데이터를����������� ������������������  저장하면서도����������� ������������������  • ����������� ������������������  저장된����������� ������������������  데이터를����������� ������������������  1����������� ������������������  ~����������� ������������������  2����������� ������������������  ms����������� ������������������  이내에����������� ������������������  조회할����������� ������������������  수����������� ������������������  있는����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  시스템을����������� ������������������  구성할����������� ������������������  수����������� ������������������  있다.����������� ������������������  

Page 35: 234 deview2013 김형준

온라인����������� ������������������  컨텐츠����������� ������������������  서비스����������� ������������������  (빅데이터����������� ������������������  도입����������� ������������������  환경)����������� ������������������  

Page 36: 234 deview2013 김형준

가장����������� ������������������  성공한����������� ������������������  사례����������� ������������������  

• ����������� ������������������  서비스����������� ������������������  기획의����������� ������������������  패러다임����������� ������������������  변화����������� ������������������  • ����������� ������������������  프로세스����������� ������������������  변화����������� ������������������  

• ����������� ������������������  기획자와����������� ������������������  개발자����������� ������������������  모두가����������� ������������������  서비스����������� ������������������  발굴����������� ������������������  • ����������� ������������������  데이터를����������� ������������������  가지고����������� ������������������  놀����������� ������������������  수����������� ������������������  있는����������� ������������������  체계����������� ������������������  마련����������� ������������������  

• ����������� ������������������  수집����������� ������������������  데이터����������� ������������������  소스����������� ������������������  확대����������� ������������������  

• ����������� ������������������  오픈����������� ������������������  소스����������� ������������������  기술����������� ������������������  내재화 ����������� ������������������  ����������� ������������������  

Page 37: 234 deview2013 김형준

구축����������� ������������������  아키텍처����������� ������������������  

Active Cluster

HBase

Table Table Table

StandBy Cluster

HBase

Table Table Table

배치분석

MRv1

Hive only

HDFS

JournalNode

Active NameNode

DataNode

StandBy NameNode

DataNode DataNode

DBMS sqoop

DW sqoop

WAS Flume

분석 룰 관리 시스템

API 서버

데이터 관리자

엔드 유저

RealTime

Batch Processing 분석 결과 저장소

•  HDFS: hadoop-2.0.0-cdh4.3.0 •  MRv1: hadoop-2.0.0-mr1-cdh.4.3.0 •  HBase: hbase-0.94.6-cdh4.3.0 •  Hive: hive-0.10.0-cdh4.3.0

Page 38: 234 deview2013 김형준

프로젝트����������� ������������������  조직����������� ������������������  구성����������� ������������������  

• ����������� ������������������  기획자����������� ������������������  • ����������� ������������������  분석����������� ������������������  룰����������� ������������������  구성����������� ������������������  및����������� ������������������  데이터����������� ������������������  검증����������� ������������������  • ����������� ������������������  결과����������� ������������������  데이터����������� ������������������  이용����������� ������������������  서비스����������� ������������������  기획����������� ������������������  반영����������� ������������������  

• ����������� ������������������  아키텍처����������� ������������������  • ����������� ������������������  대부분의����������� ������������������  시스템����������� ������������������  구성����������� ������������������  및����������� ������������������  데이터����������� ������������������  관리����������� ������������������  체계를����������� ������������������  알고����������� ������������������  있음����������� ������������������  • ����������� ������������������  직접����������� ������������������  개발에����������� ������������������  참여,����������� ������������������  개발도����������� ������������������  잘함����������� ������������������  

• ����������� ������������������  개발자����������� ������������������  • ����������� ������������������  대부분의����������� ������������������  분석����������� ������������������  룰����������� ������������������  개발����������� ������������������  업무를����������� ������������������  수행����������� ������������������  

• ����������� ������������������  시스템����������� ������������������  운영자����������� ������������������  • ����������� ������������������  Hadoop����������� ������������������  클러스터����������� ������������������  설치����������� ������������������  및����������� ������������������  운영����������� ������������������  

• ����������� ������������������  관리자����������� ������������������  • ����������� ������������������  데이터����������� ������������������  검증에����������� ������������������  적극����������� ������������������  참여����������� ������������������  

Page 39: 234 deview2013 김형준

Hive����������� ������������������  

• ����������� ������������������  MapReduce에����������� ������������������  익숙치����������� ������������������  않은����������� ������������������  개발자����������� ������������������  접근����������� ������������������  용이����������� ������������������  • ����������� ������������������  Sqoop으로����������� ������������������  이관된����������� ������������������  데이터����������� ������������������  가공����������� ������������������  적합����������� ������������������  

• ����������� ������������������  분석����������� ������������������  룰����������� ������������������  개발����������� ������������������  기간����������� ������������������  단축����������� ������������������  

Page 40: 234 deview2013 김형준

분석����������� ������������������  룰����������� ������������������  관리����������� ������������������  시스템����������� ������������������  #1����������� ������������������  

너무����������� ������������������  많은����������� ������������������  구현����������� ������������������  대상����������� ������������������  Hive����������� ������������������  질의����������� ������������������  

à ����������� ������������������  그����������� ������������������  많은����������� ������������������  질의를����������� ������������������  다����������� ������������������  만들����������� ������������������  것인가?����������� ������������������  ����������� ������������������  

질의����������� ������������������  내����������� ������������������  반복되는����������� ������������������  패턴����������� ������������������  분석����������� ������������������  

상속����������� ������������������  관계가����������� ������������������  형성되는����������� ������������������  질의����������� ������������������  

파라미터만����������� ������������������  변경되는����������� ������������������  질의����������� ������������������  

à����������� ������������������  질의를����������� ������������������  쉽게����������� ������������������  만들고,����������� ������������������  재사용할����������� ������������������  수����������� ������������������  있는����������� ������������������  방법은?����������� ������������������  

����������� ������������������  

Page 41: 234 deview2013 김형준

분석����������� ������������������  룰����������� ������������������  관리����������� ������������������  시스템����������� ������������������  #2����������� ������������������  

분석 대상 오브젝트 등록

Hive 테이블 메타 정보

오브젝트 메타 정보

시스템 담당자

분석 룰 디자인

시스템 담당자 기획자

오브젝트 메타 정보

분석 룰 관리 /실행

자동/배치

시스템 담당자

Ad-hoc 질의 실행

실행 결과

결과 제공 API

기획자

룰 생성

결과 조회

파라미터 튜닝

새로운 분석 대상 데이터 추가

파라미터 튜닝

Page 42: 234 deview2013 김형준

분석����������� ������������������  결과����������� ������������������  서비스����������� ������������������  

• ����������� ������������������  해결해야����������� ������������������  될����������� ������������������  문제����������� ������������������  • ����������� ������������������  분석����������� ������������������  결과����������� ������������������  데이터가����������� ������������������  너무����������� ������������������  크다.����������� ������������������  

• ����������� ������������������  사용자����������� ������������������  *����������� ������������������  제품����������� ������������������  수����������� ������������������  *����������� ������������������  일자����������� ������������������  *����������� ������������������  분석����������� ������������������  룰����������� ������������������  개수����������� ������������������  • ����������� ������������������  분석����������� ������������������  결과����������� ������������������  입력은����������� ������������������  어떻게?����������� ������������������  • ����������� ������������������  일반����������� ������������������  사용자����������� ������������������  대상����������� ������������������  서비스이기����������� ������������������  때문에����������� ������������������  안정적����������� ������������������  운영����������� ������������������  • ����������� ������������������  조회����������� ������������������  성능도����������� ������������������  좋아야����������� ������������������  함����������� ������������������  

Page 43: 234 deview2013 김형준

분석����������� ������������������  결과����������� ������������������  서비스����������� ������������������  시스템����������� ������������������  구성����������� ������������������  

• ����������� ������������������  HBase����������� ������������������  기반����������� ������������������  이중화����������� ������������������  시스템����������� ������������������  구성����������� ������������������  

Active Cluster

HBase

Table Table Table

StandBy Cluster

HBase (분석용 클러스터 활용)

Table Table Table

분석 결과 저장소

분석 결과 (HDFS)

HFileUploader

ZooKeeper

WAS WAS

Active Cluster 관리

Page 44: 234 deview2013 김형준

추진과정����������� ������������������  #1����������� ������������������  

• ����������� ������������������  Stage1����������� ������������������  • ����������� ������������������  DW����������� ������������������  학습에����������� ������������������  의한����������� ������������������  기대����������� ������������������  심리����������� ������������������  • ����������� ������������������  빅데이터����������� ������������������  특성을����������� ������������������  고려하지����������� ������������������  않은����������� ������������������  요구사항����������� ������������������  • ����������� ������������������  Agile����������� ������������������  방식으로����������� ������������������  분석����������� ������������������  수행����������� ������������������  • ����������� ������������������  개발팀/운영팀����������� ������������������  교육����������� ������������������  및����������� ������������������  실습����������� ������������������  ����������� ������������������  

• ����������� ������������������  Stage2����������� ������������������  • ����������� ������������������  빅데이터����������� ������������������  특성을����������� ������������������  고려한����������� ������������������  요구사항����������� ������������������  • ����������� ������������������  데이터����������� ������������������  분석����������� ������������������  기간에����������� ������������������  대한����������� ������������������  현업의����������� ������������������  이해����������� ������������������  • ����������� ������������������  Stage1����������� ������������������  결과����������� ������������������  공유에����������� ������������������  따른����������� ������������������  현업����������� ������������������  관심����������� ������������������  증가����������� ������������������  

Page 45: 234 deview2013 김형준

추진과정����������� ������������������  #2����������� ������������������  

• ����������� ������������������  Stage3����������� ������������������  • ����������� ������������������  엔드����������� ������������������  유저용����������� ������������������  라이브����������� ������������������  서비스����������� ������������������  오픈����������� ������������������  • ����������� ������������������  빅데이터를����������� ������������������  이용한����������� ������������������  서비스����������� ������������������  기획����������� ������������������  요건����������� ������������������  급증����������� ������������������  • ����������� ������������������  개발팀/운영팀����������� ������������������  기술����������� ������������������  성숙도����������� ������������������  증가����������� ������������������  

Page 46: 234 deview2013 김형준

http://si.wsj.net/public/resources/images/OB-UA904_0805bo_G_20120805170407.jpg http://runtokorea.com/wp-content/uploads/2013/02/1218_boston-marathon-2.jpg

1년����������� ������������������  협업해서����������� ������������������  ����������� ������������������  이제����������� ������������������  기본����������� ������������������  구성����������� ������������������  

Page 47: 234 deview2013 김형준

Q&A����������� ������������������  

Page 48: 234 deview2013 김형준

THANK����������� ������������������  YOU����������� ������������������