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.

Hadoop w NK.pl

552 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Hadoop w NK.pl

  1. 1. Hadoop w Hurtowni Danych nk.pl wojciech.langiewicz@nasza-klasa.pl, 4 Developers 2012
  2. 2. Plan prezentacji ● Problem ● Rozwiązanie ● Przykład nk.pl
  3. 3. Problem
  4. 4. Problem ● Ogromna ilość danych ● Które chcemy zbierać ● Analizować ● Wyciągać wnioski ● Jak najszybciej ● I najtaniej
  5. 5. Problem ● Coraz więcej firm/portali/stron ● Coraz więcej użytkowników ● Coraz aktywniejsi użytkownicy ● Maszyny generują coraz więcej danych
  6. 6. Rozwiązania
  7. 7. Rozwiązanie 1 ● Usuwamy dane po pewnym czasie ● Początkowo logujemy ostatnie 30 dni ● Wraz ze wzrostem ilości danych ten okres maleje
  8. 8. Rozwiązanie 2 ● ● ● Zbieramy tylko pewną część danych np. logujemy aktywności co 10 użytkownika (próbkowanie) Lub zmniejszamy ilość danych informacji jakie logujemy
  9. 9. Rozwiązanie „optymalne” ● Hadoop - open-source software for reliable, scalable, distributed computing ● Nigdy więcej usuwania danych ● Bez próbkowania ● Commodity hardware, relability, avability, open, free
  10. 10. Hadoop - założenia ● Dane nie mieszczące się na jednej maszynie ● Więcej maszyn → większa szansa awarii ● Wcześniejsze rozwiązania nie skalowały się ● Skanowanie (scan) dysku jest szybsze niż wyszukiwanie (seek) ● Przenoszenie obliczeń zamiast danych ● Przetwarzanie danych nie mieści się na jednej maszynie
  11. 11. Hadoop - właściwości ● ● ● ● ● Liniowo skalowany na tysiące maszyn Oparty na Javie Analizy bez agregacji ● ● Bezpieczny – replikacja ● ● Prosty w użyciu Massive parallel processing Używany przez największych ● Rozproszony ● ● Cały ekosystem Dane niestrukturalizowane Jeden system – wiele zastosowań Wbudowany failover ● Prosty
  12. 12. Hadoop – podstawa architektury ● ● Warstwa „niższa”: przechowywanie danych (HDFS) Warstwa „wyższa”: silnik wykonujący zapytania (MapReduce)
  13. 13. HDFS ● Hadoop Distributed File System ● Optymalizacja pod dostęp sekwencyjny ● Wbudowana replikacja ● Metadane przechowywane na serwerze Master (NameNode)
  14. 14. Źródło: http://hadoop.apache.org/common/docs/current/hdfs_design.html
  15. 15. MapReduce ● ● ● ● Paradygmat programowania rozproszonego Czyni łatwiejszym rozproszone przetwarzanie danych Programista dostarcza implementacje dwóch funkcji, map oraz reduce Ukrywa przed programistą większość problemów programowania rozproszonego
  16. 16. MapReduce – pseudokod Wordcount map(String key, String value) foreach word in value: emit(word, 1); reduce(String key, int[] values) int result = 0; foreach val in values: result += val; emit(key, result);
  17. 17. MapReduce - przykład map (in): abaaabcab map (out): a 1 b 1 a 1 a 1 a 1 b 1 c 1 a 1 b 1 reduce a [1 1 b [1 1 c [1] reduce a 5 b 3 c 1 (in): 1 1 1] 1] (out):
  18. 18. MapReduce - diagram map reduce map HDFS HDFS reduce map map Wczytanie danych Sort, Shuffle, Merge Zapis danych
  19. 19. Przykłady zadań ● Szukanie wzorca (grep) ● Zliczenia ● Odwracanie grafu www (inverted index) ● Sortowanie ● Wszystko co możemy zapisać jako MapReduce
  20. 20. Dostęp do danych (interfejsy) ● Java ● Streaming ● Hive ● Pig
  21. 21. Hive ● „Hurtownia danych na Hadoopie” ● Dostęp do danych za pomocą SQL ● Interface JDBC ● Wymaga wcześniejszej konfiguracji bazy z metadanymi
  22. 22. Problemy ● ● ● ● Na start potrzeba kilku serwerów, aby zauważyć wzrost wydajności To nie jest OLTP (zapytania mogą trwać minuty, a nawet godziny) Projekt we wczesnej wersji, 1.0 dopiero od niedawna (ale i tak popularny) Potrzebujesz zarządzania konfiguracją
  23. 23. Przykład nk.pl
  24. 24. Logi aplikacji (PHP) LVS 300GB dziennie syslog Klaster PHP Flume ETL RDBMS Serwer BI HDFS HiveQL Hive JDBC
  25. 25. Co dalej? ● www.cloudera.com ● http://pig.apache.org ● http://hbase.apache.org
  26. 26. Czas na pytania
  27. 27. Dziękuję za uwagę! developers.nk.pl

×