SlideShare une entreprise Scribd logo
1  sur  12
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 구하기

Contenu connexe

Tendances

'이것이 리눅스다' 책 소개
'이것이 리눅스다' 책 소개'이것이 리눅스다' 책 소개
'이것이 리눅스다' 책 소개Dabi5484
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 MinGeun Park
 
리눅스 스터디 1회차
리눅스 스터디 1회차리눅스 스터디 1회차
리눅스 스터디 1회차준혁 이
 
운영체제 Sig4
운영체제 Sig4운영체제 Sig4
운영체제 Sig4Jiwan Yoon
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱Jong Wook Kim
 
서버인프라를지탱하는기술3_2_3
서버인프라를지탱하는기술3_2_3서버인프라를지탱하는기술3_2_3
서버인프라를지탱하는기술3_2_3HyeonSeok Choi
 
Game programing gems 1.11
Game programing gems 1.11Game programing gems 1.11
Game programing gems 1.11Sehyeon Nam
 
Multi-thread : producer - consumer
Multi-thread : producer - consumerMulti-thread : producer - consumer
Multi-thread : producer - consumerChang Yoon Oh
 
1주차 리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
1주차   리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져1주차   리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
1주차 리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져Chulgyu Shin
 
Asynchronous 101 - (1)
Asynchronous 101 - (1)Asynchronous 101 - (1)
Asynchronous 101 - (1)MinChul Lee
 

Tendances (13)

'이것이 리눅스다' 책 소개
'이것이 리눅스다' 책 소개'이것이 리눅스다' 책 소개
'이것이 리눅스다' 책 소개
 
Node week1
Node week1Node week1
Node week1
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
 
리눅스 스터디 1회차
리눅스 스터디 1회차리눅스 스터디 1회차
리눅스 스터디 1회차
 
운영체제 Sig4
운영체제 Sig4운영체제 Sig4
운영체제 Sig4
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱
 
서버인프라를지탱하는기술3_2_3
서버인프라를지탱하는기술3_2_3서버인프라를지탱하는기술3_2_3
서버인프라를지탱하는기술3_2_3
 
Game programing gems 1.11
Game programing gems 1.11Game programing gems 1.11
Game programing gems 1.11
 
why docker
why dockerwhy docker
why docker
 
Multi-thread : producer - consumer
Multi-thread : producer - consumerMulti-thread : producer - consumer
Multi-thread : producer - consumer
 
1주차 리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
1주차   리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져1주차   리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
1주차 리눅스의 이해 및 설치, 파티션과 파일 시스템, 부팅매니져
 
190325 synchro
190325 synchro190325 synchro
190325 synchro
 
Asynchronous 101 - (1)
Asynchronous 101 - (1)Asynchronous 101 - (1)
Asynchronous 101 - (1)
 

Similaire à 스톰 미리보기

서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드KwangSeob Jeong
 
Java rmi 개발 가이드
Java rmi 개발 가이드Java rmi 개발 가이드
Java rmi 개발 가이드중선 곽
 
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것흥배 최
 
쓰레드.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진상 문
 
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 소개주표 홍
 
Free rtos seminar
Free rtos seminarFree rtos seminar
Free rtos seminarCho Daniel
 
(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
 
Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Bansook Nam
 

Similaire à 스톰 미리보기 (20)

서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드
 
Rust
RustRust
Rust
 
Java rmi 개발 가이드
Java rmi 개발 가이드Java rmi 개발 가이드
Java rmi 개발 가이드
 
Ddos조사
Ddos조사Ddos조사
Ddos조사
 
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
multi-thread 어플리케이션에 대해 모든 개발자가 알아 두지 않으면 안 되는 것
 
쓰레드.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
 
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 소개
 
Free rtos seminar
Free rtos seminarFree rtos seminar
Free rtos seminar
 
(2014년) Active Active 데이터센터
(2014년) Active Active 데이터센터(2014년) Active Active 데이터센터
(2014년) Active Active 데이터센터
 
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] 게임 개발에서의 클라이언트 보안 - 송창규
 
Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지
 

Dernier

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 

Dernier (6)

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 

스톰 미리보기

  • 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 구하기