Hadoop w NK.pl

27
Hadoop w Hurtowni Danych nk.pl [email protected], 4 Developers 2012

Transcript of Hadoop w NK.pl

Page 1: Hadoop w NK.pl

Hadoop w Hurtowni Danych nk.pl

[email protected], 4 Developers 2012

Page 2: Hadoop w NK.pl

Plan prezentacjiPlan prezentacji

● Problem● Rozwiązanie● Przykład nk.pl

Page 3: Hadoop w NK.pl

Problem

Page 4: Hadoop w NK.pl

ProblemProblem

● Ogromna ilość danych● Które chcemy zbierać● Analizować● Wyciągać wnioski● Jak najszybciej● I najtaniej

Page 5: Hadoop w NK.pl

ProblemProblem

● Coraz więcej firm/portali/stron● Coraz więcej użytkowników● Coraz aktywniejsi użytkownicy● Maszyny generują coraz więcej danych

Page 6: Hadoop w NK.pl

Rozwiązania

Page 7: Hadoop w NK.pl

Rozwiązanie 1Rozwiązanie 1

● Usuwamy dane po pewnym czasie● Początkowo logujemy ostatnie 30 dni● Wraz ze wzrostem ilości danych ten okres

maleje

Page 8: Hadoop w NK.pl

Rozwiązanie 2Rozwiązanie 2

● Zbieramy tylko pewną część danych● np. logujemy aktywności co 10

użytkownika (próbkowanie)● Lub zmniejszamy ilość danych informacji

jakie logujemy

Page 9: Hadoop w NK.pl

Rozwiązanie „optymalne”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

Page 10: Hadoop w NK.pl

Hadoop - założeniaHadoop - 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

Page 11: Hadoop w NK.pl

Hadoop - właściwościHadoop - właściwości

● Liniowo skalowany na tysiące maszyn

● Oparty na Javie

● Jeden system – wiele zastosowań

● Prosty w użyciu

● Bezpieczny – replikacja

● Rozproszony

● Wbudowany failover

● Prosty● Massive parallel

processing

● Używany przez największych

● Analizy bez agregacji

● Cały ekosystem

● Dane niestrukturalizowane

Page 12: Hadoop w NK.pl

Hadoop – podstawa architekturyHadoop – podstawa architektury

● Warstwa „niższa”: przechowywanie danych (HDFS)

● Warstwa „wyższa”: silnik wykonujący zapytania (MapReduce)

Page 13: Hadoop w NK.pl

HDFSHDFS

● Hadoop Distributed File System● Optymalizacja pod dostęp sekwencyjny● Wbudowana replikacja● Metadane przechowywane na serwerze

Master (NameNode)

Page 14: Hadoop w NK.pl

Źródło: http://hadoop.apache.org/common/docs/current/hdfs_design.html

Page 15: Hadoop w NK.pl

MapReduceMapReduce

● 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

Page 16: Hadoop w NK.pl

MapReduce – pseudokod WordcountMapReduce – 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);

Page 17: Hadoop w NK.pl

MapReduce - przykładMapReduce - przykład

map (in): abaaabcabmap (out):a 1b 1a 1a 1a 1b 1c 1a 1b 1

reduce (in):a [1 1 1 1 1]b [1 1 1]c [1]reduce (out):a 5b 3c 1

Page 18: Hadoop w NK.pl

HDFS

MapReduce - diagramMapReduce - diagram

map

map

map

map

reduce

reduce

HDFS

Wczytanie danych Sort, Shuffle, Merge Zapis danych

Page 19: Hadoop w NK.pl

Przykłady zadańPrzykłady zadań

● Szukanie wzorca (grep)● Zliczenia● Odwracanie grafu www (inverted index)● Sortowanie● Wszystko co możemy zapisać jako

MapReduce

Page 20: Hadoop w NK.pl

Dostęp do danych (interfejsy)Dostęp do danych (interfejsy)

● Java● Streaming● Hive● Pig

Page 21: Hadoop w NK.pl

HiveHive

● „Hurtownia danych na Hadoopie”● Dostęp do danych za pomocą SQL● Interface JDBC● Wymaga wcześniejszej konfiguracji bazy z

metadanymi

Page 22: Hadoop w NK.pl

ProblemyProblemy

● 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ą

Page 23: Hadoop w NK.pl

Przykład nk.pl

Page 24: Hadoop w NK.pl

Logi aplikacji (PHP)Logi aplikacji (PHP)

Klaster PHP

LVS

Flume

ETL

HDFS

syslog

300GB dziennie

Serwer BIHive

JDBC

RDBMS HiveQL

Page 25: Hadoop w NK.pl

Co dalej?Co dalej?

● www.cloudera.com● http://pig.apache.org● http://hbase.apache.org

Page 26: Hadoop w NK.pl

Czas na pytania

Page 27: Hadoop w NK.pl

Dziękuję za uwagę!developers.nk.pl