Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
목차
1. 대용량 데이터 처리 기술
2. 실시갂 데이터 분석 기술
3. 사용 사례
대용량 데이터 처리 기술
구글 인프라
Google Linux
GFS
Bigtable
MapReduce Clie
nt A
PI
Chubby
Clu
ster
Mgm
t
배치 애플리케이션 온라인 서비스
랙당 40대 이상의Commodity서버
주요 소프트웨어 스택
구글 인프라 구현체 하둡
GFS, MapReduce 소프트웨어 구현체
아파치 Top-Level 프로젝트
코어는 Java, C/C++, Python 등 지원
대용량 데이터 처리를 위한 플랫폼
분산 파일 시스템(HDFS)
분산 병렬 처리 시스템(MapReduce)
기반 소프트웨어 프레임워크(Core)
하둡 아키텍처
: machine
: daemon process
NameNode(DFS Master)
JobTracker(Job Master)
DataNode(DFS Slave)
TaskTracker(Task Mgmt.)
Local Disk
DataNode(DFS Slave)
TaskTracker(Task Mgmt.)
Local Disk
DataNode(DFS Slave)
TaskTracker(Task Mgmt.)
Local Disk
SecondaryNameNode
ClientAPIcontrol
datacontrol
data
하둡 MapReduce & HDFSMetadata {file_a:blk_1,blk_2}
{blk_1:DN3,DN2, DN9}
Map Infoblk_id:location
DFSClient
NameNodeSecondaryNameNode
DN6 DN7 DN8 DN9 DN10
DN1 DN2 DN3 DN4 DN5
DataNodes
Periodic Merging
Heartbeat
Block Report
x86 서버와 로컬 디스크를
이용하여 수백 PB 수준의 데이터
저장 관리
데이터는 청크(chunk) 단위 중복
저장되어 장애에 대응
서버 디스크 증설 시 선형적으로
증가하는 IO Throughput
구글이 고안한 병렬 처리 모델로
아주 쉽게 대용량 데이터를 처리가
가능
사용자는 핵심 로직에만 집중할 수
있도록 해줌(시스템 수준의 데이터
처리 과정에 대해서 몰라도 됨)
장애 발생 시 시스템이 자동적으로
복구를 해줌
차세대 하둡(2.0)
High Scalability
with distributed
name nodes
High Availability
Cluster ID
JobTracker
분리
TaskTracker
High Scalability
with Modularity
Adoptability
하둡 에코시스템
Hadoop 연관 프로젝트
연관 프로젝트(Hadoop Web)
Query 엔진
ZooKeeper: 분산코디네이터
NoSQL
Chukwa: 데이터수집 분석
Machine Learning
LibraryBSP 기반 분산컴퓨팅
프레임워크
Apache Bigtop by Cloudera
NoSQL
Query 엔진
DB Integration
ZooKeeper: 분산코디네이터
Whirr: 클라우드프로비저닝 도구
Flume: 데이터수집 웍플로우엔진
Data Platform by Hortonworks
NoSQL
Query 엔진
DB Integration
ZooKeeper: 분산코디네이터
웍플로우엔진BI/ETL
Hadoop 생태계분야 솔루션
NoSQL HBase, Cassandra, MongoDB, CouchBase, Cloudata, Riak 등
Cache Redis, Membase 등
RPC, 경량 서버 Thrift, Avro, Protocol Buffer 등
데이터 수집, 저장 Scribe, Flume, Chukwa 등
Script Language/Query Hive, Pig, HCatalog 등
Workflow Oozie, Azkaban, Cascade, Pentaho DI 등
Queue Kafka, BooKeeper
Machine Learning Mahout, Radoop, Rapid Miner
Statistics, Matrix R, RHIPE, Segue, CUDA 등
Streaming Analysis Akka, Storm, Esper, S4
Graph Analysis GoldenOrb, Giraph, Hama 등
Distributed Coordinator ZooKeeper
Search Engine Katta, Elastic Search, Solr 등
Data Integration Sqoop
FileSystem Hadoop, MogileFS, Swift, GlusterFS, Ceph 등
Cloud Service Whirr 등
하둡 사용 사례
빅데이터 데이터웨어하우스
16
빅데이터 데이터웨어하우스
17
클러스터 코디네이터
분산 스토리지
…
DB Appliance
워크플로우 엔진
분석/정제/요약 데이터
Raw 데이터 수집
Alive check
Input file
하둡JobTracker
H/A Agent
H/A Agent
Alive check
작업 워크플로우
Coordination(scheduling) job
Business M/R DB integrator
H/A Agent
H/A Agent
Data Ingester
관리 시스템
요약 데이터가 아닌 대규모 원본 데이터를 대상으로 분석 작업
Hadoop을 이용한 다양한 형태/포맷의 데이터 통합 저장 소
Hive기반 Ad-Hoc 질의, MapReduce를 이용한 비 정형 분석
빅데이터 추천시스템
18
• 추천 시스템의 유래• 사용자가 아직 경험하지 못한 품목을 추천하는 것을 계기로 이 분야의
연구가 시작
• Collaborative Filtering• 가장 널리 사용되는 추천 방법• 사용자 집단에 대한 정보를 개발 사용자의 품목 추천을 위해 사용• Model-based와 Memory-based Approach
빅데이터 추천시스템
19
기존 추천방식
용량 확장이 용이하지 않고 비용이 많이 듬
복잡도나 데이터 양이 늘어날 경우 처리 시갂이 선형적으로증가함
빅데이터 기반
하둡DFS: x86기반 하드웨어를 사용하기 때문에 적은비용으로 용량 확장 가능
MapReduce: 추천을 하기 위한 각종 계산을 여러 컴퓨터에분산 처리하도록 하여 빠른 시갂에 결과를 얻어낼 수 있음
Mahout: MapReduce기반 추천 알고리즘을 구현하기 위한라이브러리
NoSQL: 실시갂 Query를 통한 데이터 조회 및 분석
빅데이터 추천시스템
Utility Matrix: NoSQL 보관
Similarity Matrix: NoSQL 보관
Recommendation
원본 데이터: Hadoop 보관
MapReduce
MapReduce
MapReduce or Query
실시간 데이터 분석 기술
하둡의 제약?
실시갂 처리가 아닌 배치 처리
분석하기 위해 데이터를 저장
실시갂 검색 및 조회 기능 부재
강력한 에코시스템으로 해결할 수는 있지만...
22
데이터소스
데이터저장
데이터분석
결과저장
대안은 DB or 검색 엔진?
23
메모리 기반
Lucandra
HBasene
OR
준 실시간 분석
24
By Cloudera
로그 수집시스템(Flume)
NoSQL(HBase)
실시간 질의/분석 over 하둡
25
스트리밍 처리 개요
데이터 스트림
Continuous, unbounded, rapid, time-varying
streams of data elements
26
network
monitoringSensor Data RFID Tag
Telecom
Call Record
Financial
Application
Web log &
Click
Streams
Manufactur
ing Process… …
DBMS VS DSMS
27
Query Processing
Continuous Query (CQ) Result
Query Processing
Main MemoryData Stream(s) Data Stream(s)Disk
Main Memory
SQL Query Result
DSMS Data Stream Management System 지속적이고 실시갂 처리를 한다는 점에서 기존 방식과 다름
DBMS VS DSMS
28
DSMS DBMS
Transient streams Persistent relations
Continuous queries One-time queries
Sequential access Random access
Unpredictable data characteristics and arrival Patterns
Access plan determined by query processor and physical DB design
Absorbed into batch views Not absorbed
Time
Now
스트리밍 처리 솔루션
29
Esper Open Source (Enterprise Edition 제공) Java와 .net 사용이 가능하며 SQL과 흡사한 Language도 제공함
Apache S4 아파치 인큐베이터 프로젝트 분산 스트림 컴퓨팅 플랫폼 야후! 에서 공개한 오픈소스 기반의 실시갂 프로세싱 프레임워크 실시갂 개인화 검색광고를 구현하기 위해서 개발
Backtype Storm 트위터의 오픈소스 프로젝트 분산 스트림 컴퓨팅
Hstreaming Pig 의 Load / Store 에 지정하는 데이터 소스와 싱크를 HDFS이 외에
실시갂 Data Streaming을 받아들일 수 있도록 I/O 를 확장 하둡의 프레임워크 상에서 실시갂 데이터 프로세싱을 할 수 있도록 했음
실시간 스트리밍 컴퓨팅 Storm
Storm 소개
31
Backtype이라는 회사에 의해 개발된
오픈소스
Twitter에서 인수: Tweet들의 실시갂 분석
및 최적화, Anti-Spam 구현 목적
주요 기능
Streaming Processing
Distributed RPC
Continuous Computation
Storm 아키텍처
32
• Nimbus: 마스터 노드 (Hadoop JobTracker와 유사)
• Zookeepers: 클러스터 코디네이션
• Supervisors: 워커 프로세스 실행
• 주요 개념과 용어• Streams• Spouts• Bolts• Topology
Storm Streams
33
Unbounded sequence of tuples
Storm Spouts
34
Source of Streams
Storm Bolts
35
Functions
Filters
Aggregations
Joins
Talk to databases
Storm Topology
36
Spout과 Bolt들의 네트워크
Hadoop은 MapReduce 잡을 실행 VS. Storm은 “Topologies”를 실행
Data Stream
RealTime View #1
RealTime View #2
Spout #1
Bolt #1
Bolt #2
Bolt #3 Bolt #5
Bolt #4
Spout #2
Storm Messaging (1)
37
Spout#1
Spout#2
Spout#3
Spout#4
Bolt#1
Bolt#2
Bolt#3
apple
apple
orange
orange
banana
Spout#1
Spout#2
Spout#3
Spout#4
Bolt#1
Bolt#2
Bolt#3
apple
apple
apple
banana
Field Grouping Shuffle Grouping
Storm Messaging (2)
38
Spout#1
Spout#2
Spout#3
Spout#4
Bolt#1
Bolt#2
Bolt#3
appleSpout#1
Spout#2
Spout#3
Spout#4
Bolt#1
Bolt#2
Bolt#3
apple
apple
All Grouping Global Grouping
apple
apple
apple
apple
Messaging Reliability
39
Storm VS Hadoop
40
Storm Hadoop
실시갂 배치
Nimbus(마스터 노드)는 스톰에 요청되고 실행된 모든 잡들을 관리
하둡의 JobTracker와 유사함
Supervisor라고 하는 데몬이 모든 워커 프로세스를 관리
하둡의 TaskTracker와 유사함
Spout과 Bolt를 실행하는 프로세서를 Worker라고 하며, Worker는 Spouts과 Bolts를 독립적인 쓰레드로 실행함
하둡의 Task와 유사함
Multiple stages in processing pipelineOnly two stages in processing pipeline:
map and reduce
스토리지가 불 필요 분산 파일시스템인 HDFS가 필요
작업의 끝이 없음(Continuous Processing) MapReduce 작업은 언젞가는 끝남
Storm 사용 사례
Enterprise Security Management
42
ㅊ
스트림 데이터 현황
43
초당 200,000ea 로그 발생(대당 20,000ea)
일일 9TB/ 월간 270TB/ 연간 3PB(로그당 500Bytes)
원본 로그 저장 불가, 요약 로그만 저장
주요 로직
44
시퀀스 번호 룰 번호(키) 공격이름 임계치 카운트 탐지 문자열
BLACK_SIGNATURE_ID EVENT_BLACK_RULE_ID SIGNATURE ATTACK_COUNT PARAM
4582 2391 TCP_Port_Scan 20
1282 35 HTTP_Put 1 .txt
1283 36 HTTP_Put 1 .htm
1285 37 HTTP_Unix_Passwords 1
1284 37 HTTP_DotDot 1
... ... ... ... ...
룰 번호(주키) 룰이름 장비 아이피
발생지3 : 내부2 : 외부1 : any
발생지3 : 내부2 : 외부1 : any
EVENT_BLACK_RULE_ID RULE_NAME AGENT_IP SRC_IP DST_IP
2391 ISMM-3 TCP_Port_Scan WORM Suspicious 1 1
37 ISMM-1 HTTP_Unix_Passwords Vulnerability 2 1
6247 ISMM-3 SMB_AUTH_FAILED WORM Suspicious 10.156.112.13 1 3
... ... ... .. ...
<Signature>
<Rule>
<IDS Log>
스트림 처리 절차
45
Spout
PreLoad
Bolt
Bolt
1. Load Signature & Rule
2. Log Data -> Tuple -> Streaming
3. Detect Attack
4. Counting & Result
T
T
T
T
T
T
File
Web
Result
Log Data
아키텍처
46
Metadata {file_a:blk_1,blk_2}
{blk_1:DN3,DN2, DN9}
Map Infoblk_id:locatio
n
DFSClient
NameNodeSecondaryNameNode
DN6 DN7 DN8 DN9 DN10
DN1 DN2 DN3 DN4 DN5
DataNodes
Periodic Merging
Heartbeat
Block Report
Spout #1Bolt #1
Bolt #2
Bolt #3 Bolt #5
Bolt #4
Spout #2
Hadoop for Batch Processing
Storm for Realtime ProcessingSecurity Device
NoSQL for Realtime Query
Real Time
View
실시간 탐지(1)
47
Spout#1
Spout#2
Spout#3
Spout#4
Bolt#1
Bolt#2
Bolt#3
Shuffle Grouping
Spout은 보안 장비들의 로그를 받음
Spout은 보안 장비들의 로그를 Random 하게 Bolt로 보냄
date=2007-12-19 time=15:33:52 timezone="IST" device_name="CR500i"device_id=C010600411-
YFK5RL deployment_mode="Route" log_id=010202601001log_type="Firewall" log_component="Invalid Traffic" log_subtype="Denied"priority=Information duration=0 fw_rule_id=”” user_name="" user_gp="" iap=0
실시간 탐지(2)
48
Detect
BOLT#1
Detect
BOLT#2
Detect
BOLT#3
Count
Bolt#1
Count
Bolt#2
Count
Bolt#3
Field Grouping
Detect Bolt는 로그를 parsing 해서 Signature와 Rule DB에 각각 패턴
매칭 작업 수행
탐지(패턴 매칭)된 로그에 대해 Rule ID, Signature ID, 로그를 Count
Bolt로 보냄
Rule ID가 같은 로그는 동일한 Count Bolt로 보내짐
Rule ID, Sig ID, Line Contents(XXX.XXX.XXX)
Rule #3, XXXXX
Rule #3, XXXXX
Rule #3, XXXXX
Rule #2, XXXXX
실시간 탐지(3)
49
Count
BOLT#1
Count
BOLT#2
Count
BOLT#3
Count Bolt는 동일한 Rule ID에 대한 Aggregation 연산 수행임계치
Count 계산
탐지 RULE에 걸린 로그에 대해서 ALARM 또는 DB에 저장
Rule #3 exceeds threshold 20 !!!
DB
ALARM
Rule #5 exceeds threshold 10 !!!
Rule #1 exceeds threshold 10 !!!
실시간 조회/배치 분석
50
Metadata {file_a:blk_1,blk_2}{blk_1:DN3,DN2,
DN9}
Map Infoblk_id:location
DFSClient
NameNodeSecondaryNameNode
DN6 DN7 DN8 DN9 DN10
DN1 DN2 DN3 DN4 DN5
DataNodes
Periodic Merging
Heartbeat
Block Report
Storm 의 처리 결과 저장
분석 Summray 정보 저장 및 조회
좀더 복잡한 Near Realtime 분석
기간별 패턴 분석/ 데이터 마이닝 등
성능 요약
51
=> 3억 8081만건 / 1205초
=> 초당 31.6만건
=> 6억 38만건 / 1205초
=> 초당 50.1만건
정리
52
Q&A