SlideShare a Scribd company logo
1 of 16
Download to read offline
From Java to Big Data
Clickstream, Spark, Kafka, Scala, DevOps
O mnie
Piotr Guzik
https://twitter.com/guzik_io
https://github.com/pguzik
Opowiem o
● czym jest clickstream (co?)
● potrzebach biznesowych i
technicznych (dlaczego?)
● ogólnej architekturze systemu,
technicznych aspektach (jak?)
● skąd się uczyć oraz czego warto się
uczyć ?
Clickstream w Allegro
● Czym jest clickstream?
● Zbierane z frontu, web i mobile
● Ponad 400 mln zdarzeń dziennie (15k / sek)
● Podstawa do wielu decyzji biznesowych
(przykład PS3 vs XBox)
Jak być powinno
● Dane dostępne od razu - małe opóźnienia (streaming
danych)
● Dobrze opisane, łatwo dostępne dla innych (Avro -
schematy - real time, Hive-tabelki i dostęp w SQL - offline)
● Efektywny format danych (kompresja, dyski)
● Stabilnie
● Skalowalnie
A jak czasem wychodzi...
Technologia
● Potrzeba nr 1: szybciej!
● Kolejka + przetw. strumieniowe: po 2s
● Stabilnie i skalowalnie
● Log zdarzeń (Kafka)
● Spark Streaming (mini batche)
Technologia vol.2
Potrzeba nr 2: miejsce. Rozwiązanie: format Avro
● dojrzałe rozwiązanie
● schematy: struktura + dokumentacja (opcjonalne
pola, co oznacza pole, przykład wartości)
● Kompatybilność (repozytorium schematów)
● Dane nieskompresowane: Avro zajmuje 45% JSON-a
Pageviews
Mobile
Events
Errors
Source
Clickstream Ingestion System
Buffer
Kafka
...
Clients
Kafka
Pageviews
Mobile
Events
Errors
Clickstream Ingestion System (cont)
...
Clients
Kafka camus
camus2hive.sh
Droga developera Javy
● Spark -> Scala vs Python vs Java
● ScalaTest -> podobne do Spocka > Junit
● Camus (deprecated) - Java
● Zastępca Camusa (AirBnB Worklflow) - Python
● Skrypty deploymentowe - bash + python
● Wyszukiwarki - ElasticSearch + Kibana
DevOps!=no competence silo
● Automatyzacja deploymentu - Ansible
● Zbieranie metryk i monitoring
● Kafka - ustawienia + flagi
● Wizualizacja metryk = Grafana
● Rozproszone logi = Kibana
● Yarn vs Mesos + Marathon jako miejsce deploymentu
Big Data Engineer
● Programista = Scala + Python + Bash + SQL + Java
● Architekt (KISS + wizja)
● DevOps
● Programowanie ~ 35 %
● Obmyślanie architektury ~ 25 %
● Deployment + Automatyzacja ~ 40 %
Materiały - źródła
● https://www.manning.com/books/functional-programming-in-scala
● https://www.edx.org/course/big-data-analysis-spark-uc-berkeleyx-cs110x
● https://www.hadoopweekly.com/
● http://mkuthan.github.io/
● http://www.confluent.io/blog/making-sense-of-stream-processing/
● https://github.com/jaceklaskowski/mastering-apache-spark-book
● https://en.wikipedia.org/wiki/Lambda_architecture
● https://www.oreilly.com/ideas/questioning-the-lambda-architecture
● http://kafka.apache.org/documentation.html (4 punkt - tak powinna wyglądać doku !!!)
Q/A?
Thank you!
http://github.com/allegro
http://allegro.tech

More Related Content

Viewers also liked

Anomaly detection made easy
Anomaly detection made easyAnomaly detection made easy
Anomaly detection made easyPiotr Guzik
 
Real-time fraud detection in credit card transactions
Real-time fraud detection in credit card transactionsReal-time fraud detection in credit card transactions
Real-time fraud detection in credit card transactionsMariusz Rafało
 
Evento IAB Adtech e Data - Adriano Brandão - Navegg
Evento IAB Adtech e Data - Adriano Brandão - NaveggEvento IAB Adtech e Data - Adriano Brandão - Navegg
Evento IAB Adtech e Data - Adriano Brandão - NaveggIAB Brasil
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 

Viewers also liked (6)

Anomaly detection made easy
Anomaly detection made easyAnomaly detection made easy
Anomaly detection made easy
 
Real-time fraud detection in credit card transactions
Real-time fraud detection in credit card transactionsReal-time fraud detection in credit card transactions
Real-time fraud detection in credit card transactions
 
Evento IAB Adtech e Data - Adriano Brandão - Navegg
Evento IAB Adtech e Data - Adriano Brandão - NaveggEvento IAB Adtech e Data - Adriano Brandão - Navegg
Evento IAB Adtech e Data - Adriano Brandão - Navegg
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 
Anomaly Detection
Anomaly DetectionAnomaly Detection
Anomaly Detection
 
Origins of free
Origins of freeOrigins of free
Origins of free
 

Similar to Wjug from java to big data

[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegroallegro.tech
 
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PROIDEA
 
Agregacja i analiza logów
Agregacja i analiza logówAgregacja i analiza logów
Agregacja i analiza logówDivante
 
IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl 3camp
 
Space Wars Hack - Class #1
Space Wars Hack - Class #1Space Wars Hack - Class #1
Space Wars Hack - Class #1Piotr Pawlak
 
Pocałunek śmierci
Pocałunek śmierciPocałunek śmierci
Pocałunek śmierciDivante
 
"SIEM według potrzeb: Elasticsearch, Energy Logserver, Wazuh, Bro..."
"SIEM według potrzeb: Elasticsearch, Energy Logserver, Wazuh, Bro...""SIEM według potrzeb: Elasticsearch, Energy Logserver, Wazuh, Bro..."
"SIEM według potrzeb: Elasticsearch, Energy Logserver, Wazuh, Bro..."PROIDEA
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Divante
 
Najbardziej popularne wzorce architektoniczne w chmurze
Najbardziej popularne wzorce architektoniczne w chmurzeNajbardziej popularne wzorce architektoniczne w chmurze
Najbardziej popularne wzorce architektoniczne w chmurzeLukasz Kaluzny
 
tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?Brainhub
 
Programowanie Równolegle - Parallel Extensions
Programowanie Równolegle - Parallel ExtensionsProgramowanie Równolegle - Parallel Extensions
Programowanie Równolegle - Parallel ExtensionsWojciech Grześkowiak
 
Skalowanie PostgreSQL @ DBConf.PL 2014
Skalowanie PostgreSQL @ DBConf.PL 2014Skalowanie PostgreSQL @ DBConf.PL 2014
Skalowanie PostgreSQL @ DBConf.PL 2014Filip Rembialkowski
 
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...PROIDEA
 
TV i video w Internecie
TV i video w InternecieTV i video w Internecie
TV i video w InternecieDivante
 
[#4] spark - IBM Integrated Analytics System
[#4] spark - IBM Integrated Analytics System[#4] spark - IBM Integrated Analytics System
[#4] spark - IBM Integrated Analytics SystemArtur Wronski
 
PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...
PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...
PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...PROIDEA
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzkeGaldoMedia
 

Similar to Wjug from java to big data (20)

[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
 
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
 
Agregacja i analiza logów
Agregacja i analiza logówAgregacja i analiza logów
Agregacja i analiza logów
 
IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl
 
Iron Python I Dlr
Iron Python I DlrIron Python I Dlr
Iron Python I Dlr
 
Space Wars Hack - Class #1
Space Wars Hack - Class #1Space Wars Hack - Class #1
Space Wars Hack - Class #1
 
Pocałunek śmierci
Pocałunek śmierciPocałunek śmierci
Pocałunek śmierci
 
EXADATA - Infrastruktura Przyszłości
EXADATA - Infrastruktura PrzyszłościEXADATA - Infrastruktura Przyszłości
EXADATA - Infrastruktura Przyszłości
 
"SIEM według potrzeb: Elasticsearch, Energy Logserver, Wazuh, Bro..."
"SIEM według potrzeb: Elasticsearch, Energy Logserver, Wazuh, Bro...""SIEM według potrzeb: Elasticsearch, Energy Logserver, Wazuh, Bro..."
"SIEM według potrzeb: Elasticsearch, Energy Logserver, Wazuh, Bro..."
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13
 
Najbardziej popularne wzorce architektoniczne w chmurze
Najbardziej popularne wzorce architektoniczne w chmurzeNajbardziej popularne wzorce architektoniczne w chmurze
Najbardziej popularne wzorce architektoniczne w chmurze
 
tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?
 
Programowanie Równolegle - Parallel Extensions
Programowanie Równolegle - Parallel ExtensionsProgramowanie Równolegle - Parallel Extensions
Programowanie Równolegle - Parallel Extensions
 
Skalowanie PostgreSQL @ DBConf.PL 2014
Skalowanie PostgreSQL @ DBConf.PL 2014Skalowanie PostgreSQL @ DBConf.PL 2014
Skalowanie PostgreSQL @ DBConf.PL 2014
 
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...
 
TV i video w Internecie
TV i video w InternecieTV i video w Internecie
TV i video w Internecie
 
[#4] spark - IBM Integrated Analytics System
[#4] spark - IBM Integrated Analytics System[#4] spark - IBM Integrated Analytics System
[#4] spark - IBM Integrated Analytics System
 
Jaki framework wybrać
Jaki framework wybraćJaki framework wybrać
Jaki framework wybrać
 
PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...
PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...
PLNOG 13: Robert Ślaski: NFV, Virtualise networks or die – the voice of the r...
 
Extjs & netzke
Extjs & netzkeExtjs & netzke
Extjs & netzke
 

Wjug from java to big data

  • 1. From Java to Big Data Clickstream, Spark, Kafka, Scala, DevOps
  • 3. Opowiem o ● czym jest clickstream (co?) ● potrzebach biznesowych i technicznych (dlaczego?) ● ogólnej architekturze systemu, technicznych aspektach (jak?) ● skąd się uczyć oraz czego warto się uczyć ?
  • 4. Clickstream w Allegro ● Czym jest clickstream? ● Zbierane z frontu, web i mobile ● Ponad 400 mln zdarzeń dziennie (15k / sek) ● Podstawa do wielu decyzji biznesowych (przykład PS3 vs XBox)
  • 5. Jak być powinno ● Dane dostępne od razu - małe opóźnienia (streaming danych) ● Dobrze opisane, łatwo dostępne dla innych (Avro - schematy - real time, Hive-tabelki i dostęp w SQL - offline) ● Efektywny format danych (kompresja, dyski) ● Stabilnie ● Skalowalnie
  • 6. A jak czasem wychodzi...
  • 7. Technologia ● Potrzeba nr 1: szybciej! ● Kolejka + przetw. strumieniowe: po 2s ● Stabilnie i skalowalnie ● Log zdarzeń (Kafka) ● Spark Streaming (mini batche)
  • 8. Technologia vol.2 Potrzeba nr 2: miejsce. Rozwiązanie: format Avro ● dojrzałe rozwiązanie ● schematy: struktura + dokumentacja (opcjonalne pola, co oznacza pole, przykład wartości) ● Kompatybilność (repozytorium schematów) ● Dane nieskompresowane: Avro zajmuje 45% JSON-a
  • 10. Pageviews Mobile Events Errors Clickstream Ingestion System (cont) ... Clients Kafka camus camus2hive.sh
  • 11. Droga developera Javy ● Spark -> Scala vs Python vs Java ● ScalaTest -> podobne do Spocka > Junit ● Camus (deprecated) - Java ● Zastępca Camusa (AirBnB Worklflow) - Python ● Skrypty deploymentowe - bash + python ● Wyszukiwarki - ElasticSearch + Kibana
  • 12. DevOps!=no competence silo ● Automatyzacja deploymentu - Ansible ● Zbieranie metryk i monitoring ● Kafka - ustawienia + flagi ● Wizualizacja metryk = Grafana ● Rozproszone logi = Kibana ● Yarn vs Mesos + Marathon jako miejsce deploymentu
  • 13. Big Data Engineer ● Programista = Scala + Python + Bash + SQL + Java ● Architekt (KISS + wizja) ● DevOps ● Programowanie ~ 35 % ● Obmyślanie architektury ~ 25 % ● Deployment + Automatyzacja ~ 40 %
  • 14. Materiały - źródła ● https://www.manning.com/books/functional-programming-in-scala ● https://www.edx.org/course/big-data-analysis-spark-uc-berkeleyx-cs110x ● https://www.hadoopweekly.com/ ● http://mkuthan.github.io/ ● http://www.confluent.io/blog/making-sense-of-stream-processing/ ● https://github.com/jaceklaskowski/mastering-apache-spark-book ● https://en.wikipedia.org/wiki/Lambda_architecture ● https://www.oreilly.com/ideas/questioning-the-lambda-architecture ● http://kafka.apache.org/documentation.html (4 punkt - tak powinna wyglądać doku !!!)
  • 15. Q/A?