Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Wjug from java to big data

368 views

Published on

WJUG presentation

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Wjug from java to big data

  1. 1. From Java to Big Data Clickstream, Spark, Kafka, Scala, DevOps
  2. 2. O mnie Piotr Guzik https://twitter.com/guzik_io https://github.com/pguzik
  3. 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. 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. 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. 6. A jak czasem wychodzi...
  7. 7. Technologia ● Potrzeba nr 1: szybciej! ● Kolejka + przetw. strumieniowe: po 2s ● Stabilnie i skalowalnie ● Log zdarzeń (Kafka) ● Spark Streaming (mini batche)
  8. 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
  9. 9. Pageviews Mobile Events Errors Source Clickstream Ingestion System Buffer Kafka ... Clients Kafka
  10. 10. Pageviews Mobile Events Errors Clickstream Ingestion System (cont) ... Clients Kafka camus camus2hive.sh
  11. 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. 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. 13. Big Data Engineer ● Programista = Scala + Python + Bash + SQL + Java ● Architekt (KISS + wizja) ● DevOps ● Programowanie ~ 35 % ● Obmyślanie architektury ~ 25 % ● Deployment + Automatyzacja ~ 40 %
  14. 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. 15. Q/A?
  16. 16. Thank you! http://github.com/allegro http://allegro.tech

×