![Page 2: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/2.jpg)
우리 나라 사람들이
특히 좋아하는 이야기
![Page 3: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/3.jpg)
빠르면 빠를 수록 좋치요~
![Page 4: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/4.jpg)
About me • JBoss User Group Korea 온오프라인 개발자 커뮤니티 운영자 • Facebook 그룹 실시간빅데이터처리기술 온라인 커뮤니티 운영자 • 실시간 빅데이터 플랫폼 전문 개발자 • 현 DaumKakao 개발자
• 전 kth DAISY 개발자 • www.facebook.com/tedwon • tedwon.atlassian.net
![Page 5: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/5.jpg)
언제 어디서 Streaming 기술이 유용할까요??
![Page 6: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/6.jpg)
알고리즘 주식 트레이딩
지난 30분간의 주문 상품 Top10
온라인몰 사용자 클릭 스트림기반 개인화 추천
모바일 광고 타겟팅 서비스
실시간 금융 사기 방지
Streaming 기술의 Use Cases
![Page 7: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/7.jpg)
Streaming 기술의 Use Cases
• 테러 방지 • 실시간 분석/추천/광고 • 실시간 모니터링 • 제조 공정 관리 • 보안 관제 • 금융/통신 • 의료/헬스케어 • IoT(Internet of Things)
![Page 8: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/8.jpg)
Streaming 기술의 Use Cases
![Page 9: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/9.jpg)
Streaming 시스템의 Data Flow
![Page 10: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/10.jpg)
![Page 11: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/11.jpg)
![Page 12: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/12.jpg)
Fast Data
![Page 13: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/13.jpg)
funcEon(events, Eme)
![Page 14: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/14.jpg)
실시간의 개념부터 살짝
정리하고 시작합시다!
![Page 15: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/15.jpg)
실시간 Searching
실시간 Batch Job
실시간 Streaming
![Page 16: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/16.jpg)
Real-‐'me == Streaming 전제하에 이야기를 진행 하겠습니다
![Page 17: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/17.jpg)
Real-‐Eme 시스템의 특징
• EDA 기반 아키텍처로 구현해야 함!
– Event-‐driven Architecture
• 실시간이란 상대적인 개념
• 요건에 따라 실시간의 범위가 정의될 수 있음
• 실시간 서비스 수준 정의가 필요
• 실시간 시스템의 SLA 정의 및 합의 필요
![Page 18: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/18.jpg)
Real-‐Eme 시스템의 키포인트
• 낮은 수준의 지연 시간 – Low latency
• 일정한 응답 속도의 보장 – RegulariEes in Response Eme
• 예측 가능한 성능 제공
– Providing predictable performance ü 결국 낮은 지연 시간을 일정하게 최대한 오래 유지 (24/7)
![Page 19: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/19.jpg)
Real-‐Eme 서비스 수준 정의
• Latency 정규 분포 통계 계산 Throughput 995,900 (active 0 pending 0)
5 µs 수준의 성능
나노세컨드 단위 측정
![Page 20: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/20.jpg)
Real-‐Eme 서비스 수준 정의
• Near Real-‐'me
– Minutes 수준의 지연 시간 보장
• Real-‐'me
– Seconds, Milliseconds 수준 보장
• Real Real-‐'me
– Microseconds 수준 보장
ü 구체적인 범위 정의는 비즈니스 SLA 요구 수준에 따라 결정됨
![Page 21: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/21.jpg)
Streaming의 EDA 아키텍처 • EDA기반으로 사람의 감각 기관 및 반응 구조와 유사
– Event-‐driven Architecture
눈, 귀 등의 감각 기관 생각, 판단 손, 발의 반응
![Page 22: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/22.jpg)
Streaming과 일반 방식의 비교 배치, 요청/응답 방식 스트리밍 방식 Request/Response EDA
동기 처리 비동기 처리 Response ReacEon
선저장 후처리 선처리 후저장
![Page 23: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/23.jpg)
가장 먼저
실시간 로그 수집부터 이슈
![Page 24: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/24.jpg)
실시간 분산 로그 수집기
![Page 25: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/25.jpg)
Apache KaVa 이야기
![Page 26: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/26.jpg)
Apache KaVa 이야기
![Page 27: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/27.jpg)
Apache KaVa 이야기
![Page 28: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/28.jpg)
Apache KaVa 이야기
• Publish-‐subscribe 방식의 고성능 분산 메시징 시스템
• Topic과 Queue 개념이 합쳐진 모델
• LinkedIn SNA팀에서 개발하고 서비스에 사용 중
– 2011년 시작
– Scala, Java 구현
• LinkedIn에서 2014년 기준 300개가 넘는 브로커 운영
– 18,000개의 토픽
– 하루에 2,200억 메세지 처리
![Page 29: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/29.jpg)
Apache KaVa 이야기
h^p://www.slideshare.net/fullscreen/cloudera/introducEon-‐to-‐apache-‐kaVa/1
![Page 30: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/30.jpg)
Apache KaVa 이야기
• 사용하기 쉬운 API, 설정 옵션
• Zero-‐copy 방식으로 고성능 읽기 기능
• Scale-‐out 아키텍처
• Producer측에서 파티셔너를 구현해 분산 저장 조절
• 배치 단위 전송, 압축 기능등 효율적인 전송 기능
• 성능을 위해 OS와 Log 디스크 드라이브를 분리
• KaVa + Stream Processor 조합으로 활용
![Page 31: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/31.jpg)
KaVa in Neclix
h^ps://gigaom.com/2013/12/09/neclix-‐open-‐sources-‐its-‐data-‐traffic-‐cop-‐suro
![Page 32: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/32.jpg)
Apache KaVa 이야기
h^p://www.cloudera.com/content/cloudera/en/developers/home/cloudera-‐labs/apache-‐kaVa.html
![Page 33: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/33.jpg)
![Page 34: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/34.jpg)
Apache KaVa 이야기 주키퍼 시작 > bin/zookeeper-server-start.sh config/zookeeper.properties 카프카 서버 시작 > bin/kafka-server-start.sh config/server.properties 토픽 생성 > bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test 로그 생성 > bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 로그 처리 > bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
![Page 35: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/35.jpg)
Apache KaVa 이야기
High Level Consumer API
Simple Consumer API
![Page 36: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/36.jpg)
Apache KaVa 모니터링 • JBoss RHQ 모니터링 통합 플랫폼
![Page 37: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/37.jpg)
Apache KaVa 모니터링 • QuanEfind의 KaVa Offset Monitor
![Page 38: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/38.jpg)
Apache KaVa 모니터링 • QuanEfind의 KaVa Offset Monitor
![Page 39: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/39.jpg)
써보니 결국 각자 R&R이 있었습니다
![Page 40: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/40.jpg)
Complex Event Processing
![Page 41: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/41.jpg)
Esper CEP 이야기
• 1990년대부터 시작된 전통적인 Event Stream 처리 기술
• Complex Event Processing을 구현 오픈 소스 Esper
• 복합적인 event를 참조하여 패턴을 알아 차리는 기술
• Data Window, Pa^ern matching 기능이 핵심
• ConEnuous Query EPL 제공
• 10억분의 1초(ns) 단위의 성능 è 초고성능 가능
![Page 42: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/42.jpg)
Esper 이야기 • Esper 기본 아키텍처
![Page 43: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/43.jpg)
Esper 이야기 • 실시간 ETL 처리 후 HDFS 저장
Hadoop FileSystem API Thrift Server
ETL EPL 작성 (Extract, Transform, Load)
![Page 44: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/44.jpg)
Esper CEP 이야기
최근 30분내 강남에 있었던 급여가 10M 이상이며
나이가 30~35세 이상이고 취미가 쇼핑인 여성
select * from customer(age=‘30~35’, gender=‘female’, salary>10M, location=‘강남’, hobby=‘shopping’).win:time(30 min)
![Page 45: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/45.jpg)
Esper CEP 이야기
“Asset이 서로 다른 Zone으로 이동 후
10초 이상 머무르면, 경보를 알려라”
select Part.zone from pattern [ every Part=CountZone(cnt in (1, 2)) -> ( not CountZone(zone=Part.zone, cnt in (0, 3)) and timer:interval(10 sec) )]
![Page 46: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/46.jpg)
Esper CEP 이야기
단일 노드(JVM)의 한계
![Page 47: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/47.jpg)
Apache Storm 이야기
![Page 48: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/48.jpg)
Apache Storm 이야기
• Twi^er의 실시간 스트리밍 데이터 분석 솔루션
• Real-‐Eme Hadoop 같은 존재
• 스트림 분산 처리 아키텍처
• Transac'onal 스트림 처리 기능
• 분산 RPC 기능
• 이벤트 처리 보장 기능
• 지속적인 버전업 중, 커뮤니티 활발
• 국내 레퍼런스 많음
![Page 49: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/49.jpg)
Nimbus Supervisor Worker
Spout/Bolt Transac'onal Spout/Bolt
Trident
Apache Storm 키워드
![Page 50: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/50.jpg)
Apache Storm 이야기
• Real-‐Eme MapReduce JobTracker
TaskTracker
![Page 51: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/51.jpg)
Apache Storm 이야기
![Page 52: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/52.jpg)
Apache Storm 이야기
![Page 53: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/53.jpg)
KaVa + Storm IntegraEon
• Storm 프로젝트의 통합 모듈에 포함
– h^ps://github.com/apache/storm/tree/master/external/storm-‐kaVa
• Simple Consumer API로 구현
• Storm Spout에서 KaVa 메세지 offset 직접 관리
• KaVa + Storm 조합 사용 사례 많음
• ProducEon 적용 가능 수준 상태
![Page 54: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/54.jpg)
Apache Storm 이야기
![Page 55: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/55.jpg)
Apache Storm Distributed RPC
![Page 56: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/56.jpg)
Apache Storm Trident • Codes
![Page 57: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/57.jpg)
Apache Storm Trident • Compile Down
![Page 58: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/58.jpg)
![Page 59: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/59.jpg)
Apache Storm 이야기
좀 더 간단하면 안되겠니??
![Page 60: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/60.jpg)
현재 실시간 플랫폼의 아쉬운점
• 실시간 분산 환경에서 고성능으로 데이터 공유의 어려움
• 분산 환경에서 Time Window 제공이 어려움
• 로우 레벨 코드 작업이 큼
• 배치 분석 시스템과 개별 운영 공수 필요
• 클러스터 리소스 공유의 어려움
![Page 61: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/61.jpg)
실시간 시스템 아키텍처 사례
![Page 62: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/62.jpg)
JBoss Infinispan 이야기
• JBoss 커뮤니티의 오픈 소스 프로젝트
– Scala, Java
• Data Grid, In-‐memory NoSQL, 분산 케시
• In-‐memory HDFS 같은 존재
• 메모리 기반의 대용량 데이터 저장소
• 운영 중 노드 추가 가능, replica 기능 지원
• 안정적인 클러스터 운영 기능
![Page 63: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/63.jpg)
JBoss Infinispan 이야기
• 메타 데이터 관리 è 시스템 관리
• 성능/에러 모니터링 데이터 저장소 è Live Charts 로 연동
• 마이닝 데이터 저장소 è 추천
• 실시간 데이터 저장소
• 등등 포텐 대박!!
![Page 64: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/64.jpg)
새로운 분석 플랫폼의 등장
![Page 65: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/65.jpg)
새로운 분석 플랫폼 Apache Spark
One pla[orm to rule them all
… and blurs boundary between SQL, machine learning, streams & graphs
![Page 66: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/66.jpg)
h^p://spark-‐summit.org/wp-‐content/uploads/2013/10/Stoica-‐SparkSummit-‐Ion.final_.pdf
현재 분석 플랫폼의 아키텍처
![Page 67: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/67.jpg)
![Page 68: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/68.jpg)
Spark Streaming
새로운 스트리밍 플랫폼
![Page 69: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/69.jpg)
Spark Streaming 이야기
RDD
Resilient Distributed Datasets
Immutable Parallelized Collec6ons
![Page 70: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/70.jpg)
Spark Streaming 이야기
DStreams
Discre6zed Streams
연속된 RDD
![Page 71: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/71.jpg)
Spark Streaming 이야기
![Page 72: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/72.jpg)
Spark Streaming 이야기
![Page 73: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/73.jpg)
Spark Streaming 이야기
![Page 74: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/74.jpg)
Spark Streaming 이야기
• 초단위 latency
• Streaming도 작은 배치의 연속으로 구현
• Storm의 TransacEonal 토폴로지와 유사한 개념
• 실제 실행은 마이크로 배치 잡처럼 수행
• 배치 윈도우 시간 내에 처리 가능하도록 만들어줘야함
• 각 배치 사이즈를 시간 간격 설정으로 조절 가능
![Page 75: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/75.jpg)
Spark Streaming 이야기
• Simple한 프로그래밍 모델 제공
• 분산 처리 환경에서 Time Window API 제공
• Stateful 스트림 프로세싱 기능 가능
• Task 실패시 재시도 기능 제공 è fault-‐tolerance
• CMS GC가 잘 동작
• Spark 배치와 동일한 관리자 UI 제공
• 로컬 테스트 용이
![Page 76: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/76.jpg)
Spark Streaming 튜닝 핵심 개념 SparkStreamingContext 'me window: 10sec blockInterval: 500ms
으로 정의하면,
RDD당 20개의 par''on 생성 (10,000/500) 20개의 태스크가 수행됨
YARN에서 executor 1개 5개 vCore 할당시, 1vCore당 4개(20/5) 4개의 태스크 수행
![Page 77: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/77.jpg)
Spark Streaming 이야기
![Page 78: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/78.jpg)
Spark Streaming 이야기
Stream을 Transforma6on 하고 또 해서
Ac6on 하는 스토리
요런게 스트림 그래프 (DAG)
![Page 79: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/79.jpg)
Spark Streaming 이야기 • Transforma'on API
map(func)
filter(func)
flatMap(func)
mapPar''ons(func)
union(otherDataset)
repar''on(numPar''ons)
groupByKey([numTasks])
reduceByKey(func, [numTasks])
updateStateByKey(func)
![Page 80: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/80.jpg)
Spark Streaming 이야기 • Ac'on API
print()
foreachRDD(func)
saveAsTextFiles(prefix, [suffix])
saveAsHadoopFiles(prefix, [suffix])
saveAsObjectFiles(prefix, [suffix])
![Page 81: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/81.jpg)
Spark Streaming 이야기
Scala로된 샘플 코드 한 번 보실래요?
![Page 82: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/82.jpg)
Spark Streaming 이야기
![Page 83: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/83.jpg)
Spark Streaming 이야기
![Page 84: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/84.jpg)
Spark Streaming 이야기
![Page 85: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/85.jpg)
Spark Streaming on YARN
![Page 86: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/86.jpg)
KaVa + Spark IntegraEon
• KaVa 프로젝트 통합 모듈 존재
– KaVaInputDStream.scala
– h^ps://github.com/apache/spark/tree/master/external/kaVa
• High-‐level Consumer API로 구현
• ProducEon 용은 아직 아닌 듯
• 1.2.x 버전에서는 해결 될 듯
– ReliableKaVaReceiver.scala 추가
![Page 87: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/87.jpg)
Summary
• 실시간 프로젝트를 위한 기본 개념은 필수
• 각 오픈 소스의 장점을 활용한 아키텍처 구성 필요
• 안정적인 데이터 수집 관리를 위해서는 KaVa는 현재 최고의 선택
• 운영 중 동적인 스트리밍 처리 로직 변경이 필요한 경우는 Esepr
• 실시간 분산 전처리용으로 Storm, Spark Streaming
• 인메모리 프로세싱과 Infinsipan은 찰떡 궁합
• 실시간의 특성상 성능 관리와 모니터링 중요
![Page 88: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/88.jpg)
Summary
h^p://www.reacEvemanifesto.org
• ReacEve Manifesto
![Page 89: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/89.jpg)
Streaming 기술이
더욱 활발히 적용되길 바랍니다.
![Page 90: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/90.jpg)
Special thanks to co-‐workers!
![Page 91: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/91.jpg)
Thank you!
![Page 92: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/92.jpg)
개발자 커뮤니티에서 함께해요~ hjps://www.facebook.com/groups/jbossusergroup
hjps://www.facebook.com/groups/open.real'mecep
![Page 93: 지금 핫한 Real-time In-memory Stream Processing 이야기](https://reader031.vdocuments.site/reader031/viewer/2022013111/559af0461a28ab88218b4875/html5/thumbnails/93.jpg)
References • h^p://kaVa.apache.org • h^p://esper.codehaus.org • h^p://storm.apache.org • h^p://spark.apache.org/docs/latest/programming-‐guide.html • h^ps://www.usenix.org/system/files/conference/nsdi12/nsdi12-‐final138.pdf • h^p://berlinbuzzwords.de/sites/berlinbuzzwords.de/files/media/documents/
andrew_psalEs_-‐_sparkstreaming.pdf • h^p://www.michael-‐noll.com/blog/2014/10/01/kaVa-‐spark-‐streaming-‐integraEon-‐example-‐
tutorial • h^p://www.slideshare.net/ptgoetz/apache-‐storm-‐vs-‐spark-‐streaming • h^p://infinispan.org/infinispan-‐7.0 • h^p://blog.cloudera.com/blog/2014/07/jay-‐kreps-‐apache-‐kaVa-‐architect-‐visits-‐cloudera • h^p://www.slideshare.net/tedwon/realEmecepv26 • h^p://www.slideshare.net/tedwon/real-‐Eme-‐bigdataanalyEcspracEcewithunstructureddata • h^p://www.slideshare.net/tedwon/complex-‐event-‐processing-‐with-‐esper-‐11106262 • h^p://www.slideshare.net/tedwon/red-‐hat-‐forum-‐2012-‐jboss-‐rhq