SlideShare a Scribd company logo
1 of 12
Download to read offline
PREVIEW OF STORM
이덕준
Storm: profile
 BackType 에서 만든
 스트림 처리 시스템
 실시간
 분산
 BackType을Twitter 가 인수
 오픈 소스화 예정 (‘11. sep. 19th)
 Strange Loop 에서
Opening Question
 Reach 를 구하시오!
 Reach?
 어떤 특정 URL이 트위터를 통해 몇 명에게 노출
되었을까?
Reach 구하는 방법
1. 특정 URL을 트윗한 사람을 모두 구한다.
2. 그 사람의 모든 팔로워(Follower)를 구한다.
3. 팔로워 레코드를 단일화한다.
4. 센다.
Reach 구하는 비용
 비용
 수천 건의 데이터베이스 호출
 수천만 건의 팔로워 레코드 처리
 분산 처리 필수
 Strom 으로 하면 몇 초 이내
 대부분 URL은 일 초 이내
Storm more?
 실시간 처리 분야의 하둡
 하둡: batch processing
 스톰: realtime processing
 주의
 여기에서, Realtime 은 Mission-Critical, Safety-
Critical 분야의 예측가능성, 결정성을 다루는
realtime 과 다름
Realtime Processing?
 전통적인 Realtime Processing
 큐, 일꾼(Worker) 의 그래프
 일꾼은
 큐에서 메시지를 가져옴
 메시지 처리 후
 데이터베이스 갱신
 또는 새로운 메시지를 다른 큐로 전달
Realtime Processing은 어려워
 신경 쓸 일 많아
 큐와 일꾼이 잘 돌고 있을까?
 결함에 취약
 메시지 흐름 관련 복잡성
 메시지를 어디에 보내야?
 어디에서 메시지를 받아야?
 작업을 어떻게 배치해야?
 큐는 어떻게 배치해야?
Storm은?
 처리 로직 구현에만 집중하세요
 자동으로 머신 클러스터에 병렬화 해줌
 메시지 전달 추상화
 Stream,Topology, Spout, Bolt
Storm의 특징
1. 단순성
 병렬 배치 처리 MapReduce로 쉽게(하둡)
 실시간 처리의 복잡성을 낮춤(스톰)
2. 다양한 프로그래밍 언어 지원
 스톰은 Clojure로 작성
 JVM에서 돌아감
 Java, Clojure는 물론 Ruby, Python도 지원
 스톰과 통신하는 라이브러리만 작성해주면 어
떤 언어든 OK
Storm의 특징 (cont.)
3. 장애 허용(Falut-tolerant)
 스톰이 토폴로지 감시
 뻗은 일꾼 자동으로 감시, 재시작
4. 확장성
 모든 연산이 병렬적
 컴퓨터만 사서 추가하면 됨
5. 신뢰성
 모든 메시지가 적어도 한번은 처리됨
6. 속도
 처리 속도를 염두에 둔 구현
 ZeroMQ 사용
Use Cases
 스트림 처리
 전통적인 Use Case
 Continuous Computation
 Continuous Query 결과를 Streaming
 ex. 지난 몇 분간 가장 많이 RT 된 사용자 50명
 분산 RPC
 Invocation 을 기다리는 intense query
 ex. Reach 구하기

More Related Content

What's hot

Windws via c/c++ chapter 6
Windws via c/c++ chapter 6Windws via c/c++ chapter 6
Windws via c/c++ chapter 6SukYun Yoon
 
11 윈도우스레드풀
11 윈도우스레드풀11 윈도우스레드풀
11 윈도우스레드풀ssuser0c2478
 
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화sung ki choi
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree AlgorithmMerry Merry
 
Windows via c/c++ ch03. 커널오브젝트
Windows via c/c++ ch03. 커널오브젝트Windows via c/c++ ch03. 커널오브젝트
Windows via c/c++ ch03. 커널오브젝트ssuser0c2478
 
하이버네이트의 영속성 컨텍스트와 패치 전략
하이버네이트의 영속성 컨텍스트와 패치 전략하이버네이트의 영속성 컨텍스트와 패치 전략
하이버네이트의 영속성 컨텍스트와 패치 전략Sung Jae Park
 
Concurrency in action - chapter 7
Concurrency in action - chapter 7Concurrency in action - chapter 7
Concurrency in action - chapter 7JinWoo Lee
 
windows via c++ Ch 5. Job
windows via c++ Ch 5. Jobwindows via c++ Ch 5. Job
windows via c++ Ch 5. JobHyosung Jeon
 
Multi-thread : producer - consumer
Multi-thread : producer - consumerMulti-thread : producer - consumer
Multi-thread : producer - consumerChang Yoon Oh
 
R2서버정진욱
R2서버정진욱R2서버정진욱
R2서버정진욱jungjinwouk
 
리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션QooJuice
 
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것흥배 최
 
Asynchronous 101 - (1)
Asynchronous 101 - (1)Asynchronous 101 - (1)
Asynchronous 101 - (1)MinChul Lee
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http RequestNAVER D2
 
스톰 미리보기
스톰 미리보기스톰 미리보기
스톰 미리보기June Yi
 
[Windows via c/c++] 4장 프로세스
[Windows via c/c++] 4장 프로세스[Windows via c/c++] 4장 프로세스
[Windows via c/c++] 4장 프로세스종빈 오
 
Concurrency in action - chapter 5
Concurrency in action - chapter 5Concurrency in action - chapter 5
Concurrency in action - chapter 5JinWoo Lee
 
07 스레드스케줄링,우선순위,그리고선호도
07 스레드스케줄링,우선순위,그리고선호도07 스레드스케줄링,우선순위,그리고선호도
07 스레드스케줄링,우선순위,그리고선호도ssuser3fb17c
 
Windows via c++ part 1
Windows via c++ part 1Windows via c++ part 1
Windows via c++ part 1Shin heemin
 
Data Structures
Data StructuresData Structures
Data Structuresskku_npc
 

What's hot (20)

Windws via c/c++ chapter 6
Windws via c/c++ chapter 6Windws via c/c++ chapter 6
Windws via c/c++ chapter 6
 
11 윈도우스레드풀
11 윈도우스레드풀11 윈도우스레드풀
11 윈도우스레드풀
 
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree Algorithm
 
Windows via c/c++ ch03. 커널오브젝트
Windows via c/c++ ch03. 커널오브젝트Windows via c/c++ ch03. 커널오브젝트
Windows via c/c++ ch03. 커널오브젝트
 
하이버네이트의 영속성 컨텍스트와 패치 전략
하이버네이트의 영속성 컨텍스트와 패치 전략하이버네이트의 영속성 컨텍스트와 패치 전략
하이버네이트의 영속성 컨텍스트와 패치 전략
 
Concurrency in action - chapter 7
Concurrency in action - chapter 7Concurrency in action - chapter 7
Concurrency in action - chapter 7
 
windows via c++ Ch 5. Job
windows via c++ Ch 5. Jobwindows via c++ Ch 5. Job
windows via c++ Ch 5. Job
 
Multi-thread : producer - consumer
Multi-thread : producer - consumerMulti-thread : producer - consumer
Multi-thread : producer - consumer
 
R2서버정진욱
R2서버정진욱R2서버정진욱
R2서버정진욱
 
리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션리플렉션과 가비지 컬렉션
리플렉션과 가비지 컬렉션
 
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
 
Asynchronous 101 - (1)
Asynchronous 101 - (1)Asynchronous 101 - (1)
Asynchronous 101 - (1)
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
 
스톰 미리보기
스톰 미리보기스톰 미리보기
스톰 미리보기
 
[Windows via c/c++] 4장 프로세스
[Windows via c/c++] 4장 프로세스[Windows via c/c++] 4장 프로세스
[Windows via c/c++] 4장 프로세스
 
Concurrency in action - chapter 5
Concurrency in action - chapter 5Concurrency in action - chapter 5
Concurrency in action - chapter 5
 
07 스레드스케줄링,우선순위,그리고선호도
07 스레드스케줄링,우선순위,그리고선호도07 스레드스케줄링,우선순위,그리고선호도
07 스레드스케줄링,우선순위,그리고선호도
 
Windows via c++ part 1
Windows via c++ part 1Windows via c++ part 1
Windows via c++ part 1
 
Data Structures
Data StructuresData Structures
Data Structures
 

Viewers also liked

Storm - parallel and distributed
Storm - parallel and distributedStorm - parallel and distributed
Storm - parallel and distributedTaewoo Kim
 
Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Channy Yun
 
Storm - understand by coding
Storm - understand by codingStorm - understand by coding
Storm - understand by codingTaewoo Kim
 
Real-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataReal-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataTed Won
 
하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기beom kyun choi
 
스사모 테크톡 - GraphX
스사모 테크톡 - GraphX스사모 테크톡 - GraphX
스사모 테크톡 - GraphXSangWoo Kim
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례Taehyeon Oh
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기Ted Won
 
Chapter3 - learning spark
Chapter3 - learning sparkChapter3 - learning spark
Chapter3 - learning sparkMungyu Choi
 
클라우드 서비스운영 플랫폼 가루다
클라우드 서비스운영 플랫폼 가루다클라우드 서비스운영 플랫폼 가루다
클라우드 서비스운영 플랫폼 가루다상욱 송
 
Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기SangWoo Kim
 
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Yongho Ha
 
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현NAVER D2
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)Channy Yun
 
Scaling Apache Storm - Strata + Hadoop World 2014
Scaling Apache Storm - Strata + Hadoop World 2014Scaling Apache Storm - Strata + Hadoop World 2014
Scaling Apache Storm - Strata + Hadoop World 2014P. Taylor Goetz
 

Viewers also liked (20)

Storm - parallel and distributed
Storm - parallel and distributedStorm - parallel and distributed
Storm - parallel and distributed
 
Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)
 
Storm begins
Storm beginsStorm begins
Storm begins
 
Storm - understand by coding
Storm - understand by codingStorm - understand by coding
Storm - understand by coding
 
Real-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataReal-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured Data
 
기술6기 3조
기술6기 3조기술6기 3조
기술6기 3조
 
하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기
 
스사모 테크톡 - GraphX
스사모 테크톡 - GraphX스사모 테크톡 - GraphX
스사모 테크톡 - GraphX
 
빅데이터 구축 사례
빅데이터 구축 사례빅데이터 구축 사례
빅데이터 구축 사례
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기
 
Chapter3 - learning spark
Chapter3 - learning sparkChapter3 - learning spark
Chapter3 - learning spark
 
SPARK SQL
SPARK SQLSPARK SQL
SPARK SQL
 
클라우드 서비스운영 플랫폼 가루다
클라우드 서비스운영 플랫폼 가루다클라우드 서비스운영 플랫폼 가루다
클라우드 서비스운영 플랫폼 가루다
 
NiFi 시작하기
NiFi 시작하기NiFi 시작하기
NiFi 시작하기
 
Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기
 
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
 
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
 
Resource Aware Scheduling in Apache Storm
Resource Aware Scheduling in Apache StormResource Aware Scheduling in Apache Storm
Resource Aware Scheduling in Apache Storm
 
Scaling Apache Storm - Strata + Hadoop World 2014
Scaling Apache Storm - Strata + Hadoop World 2014Scaling Apache Storm - Strata + Hadoop World 2014
Scaling Apache Storm - Strata + Hadoop World 2014
 

Similar to 스톰 미리보기

스톰 접근 중
스톰 접근 중스톰 접근 중
스톰 접근 중June Yi
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드KwangSeob Jeong
 
Java rmi 개발 가이드
Java rmi 개발 가이드Java rmi 개발 가이드
Java rmi 개발 가이드중선 곽
 
쓰레드.pdf
쓰레드.pdf쓰레드.pdf
쓰레드.pdfSeokju Hong
 
Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Sung-jae Park
 
Easy gameserver
Easy gameserverEasy gameserver
Easy gameserver진상 문
 
MSA와 infra
MSA와 infraMSA와 infra
MSA와 infraJe Hun Kim
 
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)Dong Chan Shin
 
[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 API
[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 API[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 API
[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 APINAVER Engineering
 
Concurrent programming
Concurrent programmingConcurrent programming
Concurrent programmingByeongsu Kang
 
Zoo keeper 소개
Zoo keeper 소개Zoo keeper 소개
Zoo keeper 소개주표 홍
 
(2014년) Active Active 데이터센터
(2014년) Active Active 데이터센터(2014년) Active Active 데이터센터
(2014년) Active Active 데이터센터Gasida Seo
 
파이썬 병렬프로그래밍
파이썬 병렬프로그래밍파이썬 병렬프로그래밍
파이썬 병렬프로그래밍Yong Joon Moon
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기YoungSu Son
 
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summitTae Young Lee
 
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규ChangKyu Song
 

Similar to 스톰 미리보기 (20)

스톰 접근 중
스톰 접근 중스톰 접근 중
스톰 접근 중
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드
 
Rust
RustRust
Rust
 
Java rmi 개발 가이드
Java rmi 개발 가이드Java rmi 개발 가이드
Java rmi 개발 가이드
 
Ddos조사
Ddos조사Ddos조사
Ddos조사
 
쓰레드.pdf
쓰레드.pdf쓰레드.pdf
쓰레드.pdf
 
Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2
 
Easy gameserver
Easy gameserverEasy gameserver
Easy gameserver
 
MSA와 infra
MSA와 infraMSA와 infra
MSA와 infra
 
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
 
[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 API
[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 API[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 API
[16]Obfuscation 101 : 난독화, 프로가드, R8, 트랜스포머 API
 
Concurrent programming
Concurrent programmingConcurrent programming
Concurrent programming
 
Zoo keeper 소개
Zoo keeper 소개Zoo keeper 소개
Zoo keeper 소개
 
(2014년) Active Active 데이터센터
(2014년) Active Active 데이터센터(2014년) Active Active 데이터센터
(2014년) Active Active 데이터센터
 
why docker
why dockerwhy docker
why docker
 
Thread programming
Thread programmingThread programming
Thread programming
 
파이썬 병렬프로그래밍
파이썬 병렬프로그래밍파이썬 병렬프로그래밍
파이썬 병렬프로그래밍
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
 
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summit
 
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
 

스톰 미리보기

  • 2. Storm: profile  BackType 에서 만든  스트림 처리 시스템  실시간  분산  BackType을Twitter 가 인수  오픈 소스화 예정 (‘11. sep. 19th)  Strange Loop 에서
  • 3. Opening Question  Reach 를 구하시오!  Reach?  어떤 특정 URL이 트위터를 통해 몇 명에게 노출 되었을까?
  • 4. Reach 구하는 방법 1. 특정 URL을 트윗한 사람을 모두 구한다. 2. 그 사람의 모든 팔로워(Follower)를 구한다. 3. 팔로워 레코드를 단일화한다. 4. 센다.
  • 5. Reach 구하는 비용  비용  수천 건의 데이터베이스 호출  수천만 건의 팔로워 레코드 처리  분산 처리 필수  Strom 으로 하면 몇 초 이내  대부분 URL은 일 초 이내
  • 6. Storm more?  실시간 처리 분야의 하둡  하둡: batch processing  스톰: realtime processing  주의  여기에서, Realtime 은 Mission-Critical, Safety- Critical 분야의 예측가능성, 결정성을 다루는 realtime 과 다름
  • 7. Realtime Processing?  전통적인 Realtime Processing  큐, 일꾼(Worker) 의 그래프  일꾼은  큐에서 메시지를 가져옴  메시지 처리 후  데이터베이스 갱신  또는 새로운 메시지를 다른 큐로 전달
  • 8. Realtime Processing은 어려워  신경 쓸 일 많아  큐와 일꾼이 잘 돌고 있을까?  결함에 취약  메시지 흐름 관련 복잡성  메시지를 어디에 보내야?  어디에서 메시지를 받아야?  작업을 어떻게 배치해야?  큐는 어떻게 배치해야?
  • 9. Storm은?  처리 로직 구현에만 집중하세요  자동으로 머신 클러스터에 병렬화 해줌  메시지 전달 추상화  Stream,Topology, Spout, Bolt
  • 10. Storm의 특징 1. 단순성  병렬 배치 처리 MapReduce로 쉽게(하둡)  실시간 처리의 복잡성을 낮춤(스톰) 2. 다양한 프로그래밍 언어 지원  스톰은 Clojure로 작성  JVM에서 돌아감  Java, Clojure는 물론 Ruby, Python도 지원  스톰과 통신하는 라이브러리만 작성해주면 어 떤 언어든 OK
  • 11. Storm의 특징 (cont.) 3. 장애 허용(Falut-tolerant)  스톰이 토폴로지 감시  뻗은 일꾼 자동으로 감시, 재시작 4. 확장성  모든 연산이 병렬적  컴퓨터만 사서 추가하면 됨 5. 신뢰성  모든 메시지가 적어도 한번은 처리됨 6. 속도  처리 속도를 염두에 둔 구현  ZeroMQ 사용
  • 12. Use Cases  스트림 처리  전통적인 Use Case  Continuous Computation  Continuous Query 결과를 Streaming  ex. 지난 몇 분간 가장 많이 RT 된 사용자 50명  분산 RPC  Invocation 을 기다리는 intense query  ex. Reach 구하기