SlideShare una empresa de Scribd logo
1 de 21
Stream Processing Mimarileri
Şükrü Hasdemir
Spark Day 2016
İçerik
• Büyük Veri mimarileri: Batch vs Streaming
• Olay kayıtları (event log) ve mesaj
kuyrukları
• Sonsuz veri setleri nasıl analiz edilir?
• Spark Streaming ve diğer akış işleme
araçları
• Gerçek dünyadan tavsiyeler
Büyük Veri Mimarileri
• Büyük Veri işleme mimarileri üç temel
bileşene ihtiyaç duyar:
– Ölçeklenebilir ve erişilebilir bir depolama
mekanizması (dağıtık dosya sistemi veya
veritabanı)
– Dağıtık veri işleme araçları
– Bu sistemleri oluşturmak için gereken kaynak
ve hizmetleri yöneten araçlar
Toplu (Batch) Veri İşleme Mimarisi
Fast Data Architectures for Streaming Applications, Dean Wampler, 2016
Stream Processing
• En güncel verileri kullanma olanağı sağlar
– Hem raporlama, hem ürün geliştirmede
rekabet avantajı
• Toplu işlemeden farklı zorlukları var: Veri
bütünlüğü semantiği
Akış İşleme Mimarileri
Temel Noktalar
• Veri akışı: Giriş -> Kafka -> Spark
Streaming -> Depolama
• Depolama: SQL/NoSQL/Dağıtık Dosya S.
• Spark + depolama mevcut: Toplu
işlemeye/interaktif analize devam
edebiliyoruz
Lambda Mimarisi
• Batch + Streaming + Serving
• Spark sayesinde toplu ve akış işleme kodu
büyük oranda örtüşür
• İhtiyaç: Akış işleme sonuçlarının doğruluk
oranı daha düşük(tü…) ML, vb.
• Artık akış işlemede istenen doğruluk
oranlarına nasıl ulaşabileceğimizi biliyoruz!
Olay Kayıtları (Event Log) ve Mesaj
Kuyrukları
• Temel soyutlama:
– “Her şey bir dosyadır” -> “her şey bir olay
kaydıdır”
• Event log
– Veritabanı işlemleri
– IoT metrikleri
– Clickstream
– Durum değişimleri
ES ve CQRS
• Event Sourcing: Geçmiş olay kayıtlarını
baştan oynatarak sistemin son durumu
replike edilebilir
• CQRS: Yazma ve okuma için farklı
depolama ortamları kullanmak
– Bağımsız ölçeklenebilirlik
– Daha yüksek erişilebilirlik
– Eventual consistency
Mesaj Kuyrukları (1)
• Kayıt işlemek için doğal bir yöntem
• Her konu (topic) için ayrı kuyruk
– Kolay paralelleştirme
• Çoklu üretici/tüketici
• İletim semantikleri
– En fazla bir, en az bir, tam olarak bir
• Deduplication, ID, idempotency
• Kafka: Tüketilen mesajlar silinmediği için
tüketiciler durumsal (stateful) olabilir
– Durum Kafka’ya geri yazılabilir
Mesaj Kuyrukları (2)
• Avantajlar:
– Üreticiler ile tüketiciler birbirlerinden ayrılır,
bağımsız olarak eklenip çıkarılabilirler
– Her topic için istenen sayıda üretici ve tüketici
olabilir: Ölçeklenebilirlik
– Çok küçük bir soyutlama sunarlar: Pek çok
ölçeklenebilirlik ve dayanıklılık özellikleri
perdenin arkasında kalır
Sonsuz Veri Setleri Nasıl Analiz
Edilir?
• GROUP BY? JOIN?
• Tekil olay işleme vs birleştirme
• Event time vs. processing time
• Spark Streaming mini-batch <- proc. Time
– Spark 2.0: Event time desteği
Olay vs. İşlem Zamanı
İşlem Zaman Dilimi Tanımları
• Watermark: Bir bağlama ait bütün olayların
toplanmış olduğunu bildirir.
• Trigger: İşlem başlatıcılar – eksik sonuçlar
oluşturulabilir
– Watermark
– Zamanlama
– Limit
• Accumulation mode: Aynı zaman dilimindeki
farklı gözlemleri nasıl birleştireceğiz? Bağımsızlar
mı? Sonra gelen öncelikli mi olacak? Birleşim?
Sonsuz Akışları Zamanında
İşlemek
• İstekler:
– Doğruluk
– Dirençlilik
– Süreklilik
• Örnek: Bir dashboard uygulaması yaklaşık
sonuçları hemen gösterip sonradan gelen
verilerle update edebilir.
Finansal uygulamalarda bu kabul edilmez:
“Düzeltme” mekanizmaları gerekli.
Spark Streaming vs Diğer Akış
İşleme Araçları
• Spark 2.0: Structured Streaming ile
bahsedilen bütün akış işleme
semantiklerini desteklemeye doğru gidiş.
– Sürekli uygulamalar
• Flink, Gearpump -> Apache Beam
• Kafka Streams, Akka Streams
Gerçek Dünya
• Akış işleme 7/24 çalışmalı… Reaktif
sistemler:
– Responsive
– Resilient (replication, isolation)
– Elastic
– Mesage driven
Bazı Tavsiyeler
• Veriler önce Kafka ile alınıp sonra akış
işlemeye gönderilmeli
• Sonraki servislerin ihtiyaç duyacağı işlem
sonuçları Kafka’ya geri yazılmalı
• Entegrasyon mikroservisleri için reaktif
protokoller kullanılmalı: Backpressure, flow
control
• Mesos, YARN vb. kullanılmalı
• Doğru veritabanı seçimi: Dağıtık
ölçeklenebilirlik, bileşen arızalarına
dayanıklılık, CAP trade-off
Teşekkürler
sukru@fikrimuhal.com

Más contenido relacionado

Destacado

Foot diseases tips for isolated doctor
Foot diseases tips for isolated doctorFoot diseases tips for isolated doctor
Foot diseases tips for isolated doctorE.I. HO-PUN-CHEUNG
 
L'Open Access et les Données de la Recherche dans le cadre du Programme Horiz...
L'Open Access et les Données de la Recherche dans le cadre du Programme Horiz...L'Open Access et les Données de la Recherche dans le cadre du Programme Horiz...
L'Open Access et les Données de la Recherche dans le cadre du Programme Horiz...Agropolis International
 
Estrategia de participacion para el Sistema Nacional de Areas Protegidas en C...
Estrategia de participacion para el Sistema Nacional de Areas Protegidas en C...Estrategia de participacion para el Sistema Nacional de Areas Protegidas en C...
Estrategia de participacion para el Sistema Nacional de Areas Protegidas en C...Luz Nelly Niño Benavides
 
Національно-патріотичний виховний захід
Національно-патріотичний виховний західНаціонально-патріотичний виховний захід
Національно-патріотичний виховний західCenter_Inspiration
 

Destacado (6)

Foot diseases tips for isolated doctor
Foot diseases tips for isolated doctorFoot diseases tips for isolated doctor
Foot diseases tips for isolated doctor
 
El Sistema Solar.
El Sistema Solar.El Sistema Solar.
El Sistema Solar.
 
L'Open Access et les Données de la Recherche dans le cadre du Programme Horiz...
L'Open Access et les Données de la Recherche dans le cadre du Programme Horiz...L'Open Access et les Données de la Recherche dans le cadre du Programme Horiz...
L'Open Access et les Données de la Recherche dans le cadre du Programme Horiz...
 
Estrategia de participacion para el Sistema Nacional de Areas Protegidas en C...
Estrategia de participacion para el Sistema Nacional de Areas Protegidas en C...Estrategia de participacion para el Sistema Nacional de Areas Protegidas en C...
Estrategia de participacion para el Sistema Nacional de Areas Protegidas en C...
 
Carrer
CarrerCarrer
Carrer
 
Національно-патріотичний виховний захід
Національно-патріотичний виховний західНаціонально-патріотичний виховний захід
Національно-патріотичний виховний захід
 

Similar a Sukru_TRSUG2016

Berkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel Bakış Berkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel Bakış Veysel Taşcıoğlu
 
Berkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel BakışBerkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel Bakıştechbase
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices ArchitectureDilaver Demirel
 
Pub/Sub Temelleri Ve Apache Kafka
Pub/Sub Temelleri Ve Apache KafkaPub/Sub Temelleri Ve Apache Kafka
Pub/Sub Temelleri Ve Apache KafkaVolkan Altan
 
Pub/Sub Temelleri, RabbitMQ ve Apache Kafka
Pub/Sub Temelleri, RabbitMQ ve Apache KafkaPub/Sub Temelleri, RabbitMQ ve Apache Kafka
Pub/Sub Temelleri, RabbitMQ ve Apache KafkaVolkan Altan
 
Event Driven Architecture And Message Queues by Orçun Çolak
Event Driven Architecture And Message Queues by Orçun ÇolakEvent Driven Architecture And Message Queues by Orçun Çolak
Event Driven Architecture And Message Queues by Orçun ÇolakOrçun Çolak
 
Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - Türkçe
Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - TürkçeApache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - Türkçe
Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - TürkçeEmre Akış
 
Istanbul Datascience Academy Talks
Istanbul Datascience Academy TalksIstanbul Datascience Academy Talks
Istanbul Datascience Academy TalksMetin Uslu
 
Loglari nerede saklayalım?
Loglari nerede saklayalım?Loglari nerede saklayalım?
Loglari nerede saklayalım?Ertugrul Akbas
 
Bilgisayar Mimarisi 06, Feza BUZLUCA
Bilgisayar Mimarisi 06, Feza BUZLUCABilgisayar Mimarisi 06, Feza BUZLUCA
Bilgisayar Mimarisi 06, Feza BUZLUCAFeza BUZLUCA
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19Cihan Özhan
 
Docker - Ankara Cloud Meetup
Docker - Ankara Cloud Meetup Docker - Ankara Cloud Meetup
Docker - Ankara Cloud Meetup Mustafa AKIN
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data PresentationSerkan Özal
 
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesMLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesCihan Özhan
 
Infraskope Security Event Manager
Infraskope  Security  Event  ManagerInfraskope  Security  Event  Manager
Infraskope Security Event Managerlogyonetimi
 

Similar a Sukru_TRSUG2016 (20)

Berkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel Bakış Berkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel Bakış
 
Berkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel BakışBerkeley Data Analytics Stack Genel Bakış
Berkeley Data Analytics Stack Genel Bakış
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Riak ve RiakCS
Riak ve RiakCSRiak ve RiakCS
Riak ve RiakCS
 
Pub/Sub Temelleri Ve Apache Kafka
Pub/Sub Temelleri Ve Apache KafkaPub/Sub Temelleri Ve Apache Kafka
Pub/Sub Temelleri Ve Apache Kafka
 
Pub/Sub Temelleri, RabbitMQ ve Apache Kafka
Pub/Sub Temelleri, RabbitMQ ve Apache KafkaPub/Sub Temelleri, RabbitMQ ve Apache Kafka
Pub/Sub Temelleri, RabbitMQ ve Apache Kafka
 
Event Driven Architecture And Message Queues by Orçun Çolak
Event Driven Architecture And Message Queues by Orçun ÇolakEvent Driven Architecture And Message Queues by Orçun Çolak
Event Driven Architecture And Message Queues by Orçun Çolak
 
Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - Türkçe
Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - TürkçeApache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - Türkçe
Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - Türkçe
 
Istanbul Datascience Academy Talks
Istanbul Datascience Academy TalksIstanbul Datascience Academy Talks
Istanbul Datascience Academy Talks
 
12factor apps
12factor apps12factor apps
12factor apps
 
Loglari nerede saklayalım?
Loglari nerede saklayalım?Loglari nerede saklayalım?
Loglari nerede saklayalım?
 
Bilgisayar Mimarisi 06, Feza BUZLUCA
Bilgisayar Mimarisi 06, Feza BUZLUCABilgisayar Mimarisi 06, Feza BUZLUCA
Bilgisayar Mimarisi 06, Feza BUZLUCA
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19
 
Docker - Ankara Cloud Meetup
Docker - Ankara Cloud Meetup Docker - Ankara Cloud Meetup
Docker - Ankara Cloud Meetup
 
Openstack Magnum CaaS
Openstack Magnum CaaSOpenstack Magnum CaaS
Openstack Magnum CaaS
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data Presentation
 
Linkle mimari
Linkle mimariLinkle mimari
Linkle mimari
 
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesMLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
 
Nosql & MongoDB
Nosql & MongoDBNosql & MongoDB
Nosql & MongoDB
 
Infraskope Security Event Manager
Infraskope  Security  Event  ManagerInfraskope  Security  Event  Manager
Infraskope Security Event Manager
 

Sukru_TRSUG2016

  • 1. Stream Processing Mimarileri Şükrü Hasdemir Spark Day 2016
  • 2. İçerik • Büyük Veri mimarileri: Batch vs Streaming • Olay kayıtları (event log) ve mesaj kuyrukları • Sonsuz veri setleri nasıl analiz edilir? • Spark Streaming ve diğer akış işleme araçları • Gerçek dünyadan tavsiyeler
  • 3.
  • 4. Büyük Veri Mimarileri • Büyük Veri işleme mimarileri üç temel bileşene ihtiyaç duyar: – Ölçeklenebilir ve erişilebilir bir depolama mekanizması (dağıtık dosya sistemi veya veritabanı) – Dağıtık veri işleme araçları – Bu sistemleri oluşturmak için gereken kaynak ve hizmetleri yöneten araçlar
  • 5. Toplu (Batch) Veri İşleme Mimarisi Fast Data Architectures for Streaming Applications, Dean Wampler, 2016
  • 6. Stream Processing • En güncel verileri kullanma olanağı sağlar – Hem raporlama, hem ürün geliştirmede rekabet avantajı • Toplu işlemeden farklı zorlukları var: Veri bütünlüğü semantiği
  • 8. Temel Noktalar • Veri akışı: Giriş -> Kafka -> Spark Streaming -> Depolama • Depolama: SQL/NoSQL/Dağıtık Dosya S. • Spark + depolama mevcut: Toplu işlemeye/interaktif analize devam edebiliyoruz
  • 9. Lambda Mimarisi • Batch + Streaming + Serving • Spark sayesinde toplu ve akış işleme kodu büyük oranda örtüşür • İhtiyaç: Akış işleme sonuçlarının doğruluk oranı daha düşük(tü…) ML, vb. • Artık akış işlemede istenen doğruluk oranlarına nasıl ulaşabileceğimizi biliyoruz!
  • 10. Olay Kayıtları (Event Log) ve Mesaj Kuyrukları • Temel soyutlama: – “Her şey bir dosyadır” -> “her şey bir olay kaydıdır” • Event log – Veritabanı işlemleri – IoT metrikleri – Clickstream – Durum değişimleri
  • 11. ES ve CQRS • Event Sourcing: Geçmiş olay kayıtlarını baştan oynatarak sistemin son durumu replike edilebilir • CQRS: Yazma ve okuma için farklı depolama ortamları kullanmak – Bağımsız ölçeklenebilirlik – Daha yüksek erişilebilirlik – Eventual consistency
  • 12. Mesaj Kuyrukları (1) • Kayıt işlemek için doğal bir yöntem • Her konu (topic) için ayrı kuyruk – Kolay paralelleştirme • Çoklu üretici/tüketici • İletim semantikleri – En fazla bir, en az bir, tam olarak bir • Deduplication, ID, idempotency • Kafka: Tüketilen mesajlar silinmediği için tüketiciler durumsal (stateful) olabilir – Durum Kafka’ya geri yazılabilir
  • 13. Mesaj Kuyrukları (2) • Avantajlar: – Üreticiler ile tüketiciler birbirlerinden ayrılır, bağımsız olarak eklenip çıkarılabilirler – Her topic için istenen sayıda üretici ve tüketici olabilir: Ölçeklenebilirlik – Çok küçük bir soyutlama sunarlar: Pek çok ölçeklenebilirlik ve dayanıklılık özellikleri perdenin arkasında kalır
  • 14. Sonsuz Veri Setleri Nasıl Analiz Edilir? • GROUP BY? JOIN? • Tekil olay işleme vs birleştirme • Event time vs. processing time • Spark Streaming mini-batch <- proc. Time – Spark 2.0: Event time desteği
  • 15. Olay vs. İşlem Zamanı
  • 16. İşlem Zaman Dilimi Tanımları • Watermark: Bir bağlama ait bütün olayların toplanmış olduğunu bildirir. • Trigger: İşlem başlatıcılar – eksik sonuçlar oluşturulabilir – Watermark – Zamanlama – Limit • Accumulation mode: Aynı zaman dilimindeki farklı gözlemleri nasıl birleştireceğiz? Bağımsızlar mı? Sonra gelen öncelikli mi olacak? Birleşim?
  • 17. Sonsuz Akışları Zamanında İşlemek • İstekler: – Doğruluk – Dirençlilik – Süreklilik • Örnek: Bir dashboard uygulaması yaklaşık sonuçları hemen gösterip sonradan gelen verilerle update edebilir. Finansal uygulamalarda bu kabul edilmez: “Düzeltme” mekanizmaları gerekli.
  • 18. Spark Streaming vs Diğer Akış İşleme Araçları • Spark 2.0: Structured Streaming ile bahsedilen bütün akış işleme semantiklerini desteklemeye doğru gidiş. – Sürekli uygulamalar • Flink, Gearpump -> Apache Beam • Kafka Streams, Akka Streams
  • 19. Gerçek Dünya • Akış işleme 7/24 çalışmalı… Reaktif sistemler: – Responsive – Resilient (replication, isolation) – Elastic – Mesage driven
  • 20. Bazı Tavsiyeler • Veriler önce Kafka ile alınıp sonra akış işlemeye gönderilmeli • Sonraki servislerin ihtiyaç duyacağı işlem sonuçları Kafka’ya geri yazılmalı • Entegrasyon mikroservisleri için reaktif protokoller kullanılmalı: Backpressure, flow control • Mesos, YARN vb. kullanılmalı • Doğru veritabanı seçimi: Dağıtık ölçeklenebilirlik, bileşen arızalarına dayanıklılık, CAP trade-off