HADOOP Dariusz Żbik -...

34
HADOOP Dariusz Żbik

Transcript of HADOOP Dariusz Żbik -...

HADOOPDariusz Żbik

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

DLACZEGO?

Przetwarzanie dużych zbiorów danych

Przykład – wyszukiwanie w zbiorze 100TB

� 1 węzeł @ 40MB/s -> 30 dni

� MTBF ~ 3 lata

� 1000 węzłów @ 40MB/s -> 44 minuty

� MTBF ~ 1 dzień

Potrzebny framework do obliczeń

� wydajny

� niezawodny

� łatwy w użyciu

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

JAK?

• klaster zbudowany z PC

• rozproszony system plików

• rozproszony framework obliczeniowy (MapReduce)

• narzędzia OpenSource

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

KTO I PO CO?

� wyszukiwanie (distributed grep)

� sortowanie

� konstruowanie indeksów

� kategoryzacja dokumentów

� agregacja statystyka

Kto używa?

� SoftwareMind

� Google

� Yahoo

HADOOP Copyright 2007 © Software Mind Sp. z o. o.

MapReduce – CECHY

Zapewnia:

• skalowalność

• niezawodność

Wymaga:

• zapisanie obliczenia jako ciąg operacji:

� map()

� reduce()

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

MapReduce – TEORETYCZNIE

� map: (k,v) -> list(k', v')

� wewnętrzna operacja grupowania/sortowania

� reduce: (k',list(v')) -> list(k', v')

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

MapReduce – TEORETYCZNIE (2)

� czytanie wejścia – input reader

� operacja Map

� podział na kawałki – partitioner

� sortowanie i grupowanie

� operacja Reduce

� zapis wyników

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

MapReduce – TEORETYCZNIE (3)

HADOOP Copyright 2007 © Software Mind Sp. z o. o.

STATYSTYKA SŁÓW

map:

� input: linia tekstu

� operacja: podział na wyrazy

� output: wyraz, liczba wystąpień

reduce:

� input: wyraz, lista liczby wystąpień

� operacja: sumowanie

� output: wyraz, całkowita liczba wystąpień

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

OBIEKTY K,V

� serializacja/deserializacja

� relacja porządkująca (dla kluczy)

W praktyce wypełnienie interfejsów:

� org.apache.hadoop.io.Writable

� write(DataOutputStream)

� readFields(DataInputStream)

� org.apache.hadoop.io.WritableComparable

� write()/readFields()

� compareTo() z interfejsu java.land.Comparable

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

ANALIZA KOSZTKA - PROBLEM

� dane źródłowe: wykonane operacje kasowe

� cel: znalezienie produktów powiązanych

� problem: skala

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

KOSZTYK SQLem

create table items (item_id serial, prod_id int,

transaction_id int);

-- insert into items(product_id, transaction_id) values(...);

select

i1.prod_id,

i2.prod_id,

count(distinct(i1.transaction_id))

from

items as i1

join items as i2

on i1.transaction_id = i2.transaction_id

and i1.prod_id > i2.prod_id

group by i1.prod_id, i2.prod_id;

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

KOSZYK – Hadoop

� operacja pomocnicza – pobranie danych z bazy

� select * from items group by transaction_id

� zapis w dogodnej postaci:

� (k)klucz: transaction_id

� (v)wartość: lista identyfikatorów produktów

� podział na osobne pliki

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

KOSZYK – Hadoop – MAP

po ludzku:

� wejście – rachunek

� operacja – wyszukanie par na rachunku

� wyjście – para, liczebność (=1)

output

� k': (prod_id,prod_id)

� v': int // 1

input

� k: transaction_id

� v: list(prod_id)

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

KOSZYK – Hadoop – MAP

public class BasketMap extends MapReduceBase implements Mapper {

ProductsPair pair = new ProductsPair();

LongWritable one = new LongWritable(1);

public void map(WritableComparable key, Writable values,

OutputCollector output, Reporter reporter) throws IOException {

Integer[] items = ((BillItems)values).getProducts();

for (int i=0; i<items.length; i++) {

for (int j=i+1; j<items.length; j++) {

if ( items[i].intValue() < items[j].intValue() ) {

pair.setProducts(items[i], items[j]);

output.collect(pair, one);

}

}

}

}

}

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

KOSZYK – Hadoop – Reduce

po ludzku:

� wejście – para, lista(liczb wystąpień)

� operacja – podsumowanie

� wyjście – para, całkowita liczebność

Implementacja:org.apache.hadoop.mapred.lib.LongSumReducer

output

k': (prod_id,prod_id)

v': long //całkowita l.w.

input

k': (prod_id,prod_id)

v': lista(long)

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

PRZERWA NA REKLAMĘ

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

DFS – Distributed File System

• dane są przechowywane na wielu węzłach (Distributed)

• dane dostępne z wielu węzłów

• niezawodność (fault tolerant)

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

HDFS – UPROSZCZENIA

� plik jest „jednokrotnego” zapisu

� brak możliwości dopisywania do pliku

� brak możliwości modyfikowania pliku

� brak operacji seek() podczas zapisu

� zapis jest wykonywany przez jeden proces

� optymalizacja dla dużych plików

� nieefektywność w przypadku dużej liczby małych

plików

HADOOP Copyright 2007 © Software Mind Sp. z o. o.

DZIĘKUJĘ ZA UWAGĘ

• http://lucene.apache.org/hadoop

• MapReduce Tools for Eclipse

• PigLatin

� http://wiki.apache.org/incubator/PigProposal

� http://research.yahoo.com/project/pig

• Hbase

SOFTWARE MIND

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

RYNKI, NA KTÓRYCH DZIAŁAMY

Nasze biura:

� Kraków

� Warszawa

� Londyn

� Sophia-Antipolis

� Lwowie

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

Jesteśmy zespołem dynamicznych i kreatywnych osób, który tworzy innowacyjne, najwyższej jakościrozwiązania informatyczne wspierające Twój biznes

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

� Dynamiczny Software House,aktywnie działający na globalnych rynkach

� Profesjonalny partnerdostarczający wysokiej jakości produkty i usługi IT

� Pracujący z Klientami według najlepszych międzynarodowych

standardów jakości(CMMI level 2/3)

SOFTWARE MIND

HADOOP Copyright 2007 © Software Mind Sp. z o. o.

815

25

7080

110

0

20

40

60

80

100

120

2002 2003 2004 2005 2006 2007

(prognoza)

• Istniejemy na rynku od roku 1999

• Zatrudniamy ponad 90 osób

� 60 % naszych przychodów

pochodzi z rynków międzynarodowych

SOFTWARE MIND

Western Europie USA

Poland

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

Jesteśmy ekspertami z zakresu IT Business Solutions & Services

Zawsze poszukujemy efektywnych i innowacyjnych rozwiązań

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

Specjalizujemy się w rozwiązaniach Customer Management

Twój Klient jest w centrum naszej uwagi

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

Chcemy być dla Ciebie Partnerem z wyboru, dlatego zaangażowaniem, innowacyjnością, jakością, bliskościąwspółpracy codziennie pracujemy na Twoje zaufanie

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

Jesteśmy wierni naszym wartościom

Są nimi: Ludzie, Jakość, Innowacja, Transparentność

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

“Mogę zagwarantować, że nawet z moim światowej klasy zespołem Egg ds. rozwoju

wydałbym dwa razy więcej pieniędzy, zaangażowałbym dwa razy więcej ludzi i wciąż

byłbym w połowie drogi do miejsca, w którym znajdujemy się obecnie.

Dzisiaj kładziemy solidne fundamenty, na których w ciągu najbliższych kilku miesięcy

zbudujemy naprawdę imponującą platformę internetową nowej generacji, zaś na tej

platformie Garlik stworzy wyjątkowy biznes”

Tom Ilube, CEO Garlik, former CIO Eggbank

NASI KLIENCI O NAS

"Chciałbym wyrazić swoje podziękowania i gratulacje za wspaniałą pracę nad

[...] projektem. Ostatnia wersja jest już gotowa, wcześniej, niż wynikałoby

to z harmonogramu, przy koszcie poniżej budżetu i braku jakichkolwiek zaległości.

Był to prawdziwy wysiłek zespołu, wszyscy uczestniczyli w identyfikowaniu oraz

uzgadnianiu różnych kwestii. Jeszcze raz dziękuję za Wasz profesjonalizm

i wspaniałą pracę”

David Taylor, Project Manager, GTech Corp.

Kliknij, aby edytować styl wzorca tytułu

Kliknij, aby edytować style wzorca tekstu

Drugi poziom

Copyright 2007 © Software Mind Sp. z o. o. HADOOP

FIRMY, KTÓRE SPRAWDZIŁY NASZĄ DOBRĄ JAKOŚĆ

Copyright 2007 © Software Mind Sp. z o. o. Oferta firmy Software Mind Copyright 2007 © Software Mind Sp. z o. o. HADOOP

SIEDZIBA GŁÓWNAul. Bociana 22 A

31-231 Kraków

Polska

tel: + 48 12 252 34 00

fax: + 48 12 252 34 01

[email protected]

ODDZIAŁY:

Polska /Warszawa

Francja /Nicea

Wielka Brytania /Londyn

Ukraina/ Lwów