SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler 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

Mais conteúdo relacionado

Destaque

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
 

Destaque (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
 

Semelhante a 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
 

Semelhante a 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?