spracovanie velkych dat monogram tech monday 27.07.2011

24
MONOGRAM Tech. Monday 25.7.2011 Spracovanie ve ľ k ý ch dát Tomáš Majer Monday, July 25, 11

Upload: tomas-majer

Post on 20-Jan-2015

2.595 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

MONOGRAM Tech. Monday 25.7.2011

Spracovanie veľkých dátTomáš Majer

Monday, July 25, 11

Page 2: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Čo sú veľké dáta

✤ Tomajová definicia

✤ Také dáta, ktoré: nevojdú na jeden stroj, alebo sa s nedá s nimi pracovať v reálnom čase na jednom stroji

Monday, July 25, 11

Page 3: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Prečo sú dôležité?

✤ Dát je stále viac a viac

✤ Web 2.0 - sociálny aspekt webu zabezpečuje vytváranie obrovského množstva použiteľných dát

✤ Jednoduchý príklad: Facebook

✤ 135 bilionov správ za mesiac

✤ 20 bilionov udalostí za deň - 200 000 za sekundu

Monday, July 25, 11

Page 4: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Nárast Facebooku

0

1,000

2,000

3,000

4,000

Marec 2008Apríl 2009

Október 2009

Nové data za ďen (GB)

Monday, July 25, 11

Page 5: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Ako ukladať veľké dáta

✤ SQL  databázy  trpia  základnym  problémom  so  škálovateĺnosťou

✤ NoSQL - “ľahko” škálovateĺné - vhodné pre veľké dáta

Monday, July 25, 11

Page 6: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Monday, July 25, 11

Page 7: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

NoSQL

✤ Viaceré typy

✤ document oriented, column oriented, graph oriented, key-value

✤ Vysoký výkon

✤ Obmedzené možnosti - oproti SQL databázam

✤ Neexistuje štandard pre prácu s dátami

✤ V praxi sa osvedčila kombinácia NoSQL s SQL

Monday, July 25, 11

Page 8: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Google MapReduce2004 Google vydal paper: MapReduce: Simplified Data Processing on Large Clusters

Monday, July 25, 11

Page 9: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Ciele MapReduce

✤ Rozložiť výpočet medzi viacero strojov - nodov

✤ Jednoduchý framework, ktorý zabezpečí jednoduché písanie takéhoto kódu

✤ Horizontálna škálovateľnosť

Monday, July 25, 11

Page 10: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Ako teda funguje MapReduce?

Monday, July 25, 11

Page 11: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

✤ Existuje viacero nodov, ktoré môžu robiť viacero vecí

✤ 2 základne úlohy

✤ Map job

✤ vstupný vektor <key1, value1>

✤ výstupný zoznam vektorov <key2, value2>

✤ Reduce job

✤ vstupný vektor <key2, <zoznam hodnot z maperov s výstupom key2>>

✤ výstupný zoznam vektorov <key3, value3>

Monday, July 25, 11

Page 12: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Jednoduchý príklad - spočítanie slov

void map(String name, String document):

// name: document name // document: document contents for each word w in document: EmitIntermediate(w, "1"); void reduce(String word, Iterator partialCounts): // word: a word // partialCounts: a list of aggregated partial counts int sum = 0; for each pc in partialCounts: sum += ParseInt(pc); Emit(word, AsString(sum));

Monday, July 25, 11

Page 13: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Monday, July 25, 11

Page 14: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Jednoduché MapReduce príklady

✤ Distribuovaný grep

✤ Sčítanie návštev pre URL

✤ mapper <URL, 1>

✤ reducer <URL, celkový počet návštev>

✤ Graf väzieb stránok

✤ mapper <cieľ, zdroj>

✤ reducer <cieľ, zoznam zdrojov>

Monday, July 25, 11

Page 15: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Moje skúsenosti s MapReduce?

Monday, July 25, 11

Page 16: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Diplomovka

✤ Práca s Twitter Datasetom

✤ takmer 30 GB textový subor

✤ ďalšie pár sto megové csvcka

✤ implementácia viacerých Mapperov a Reducerov pre výpočet ohodnotenia stránok pomocou tweetov z mikroblogu

Monday, July 25, 11

Page 17: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Apache HADOOP

Monday, July 25, 11

Page 18: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

✤ Open source MapReduce framework

✤ Napísaný v Jave

✤ Podporuje aj iné jazyky

✤ Využívajú ho dnes okrem Google-u takmer všetci veľký IT hráčí:

✤ Facebook, Twitter, LinkedIn, Adobe, Amazon, Apple, eBay, Hulu, IBM, Last.fm, Yahoo a strašne veľa ďalších

Monday, July 25, 11

Page 19: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

Date

Hadoop zahŕňa celý ekosystémHadoop zah

Monday, July 25, 11

Page 20: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

HDFS

✤ Vychádza z GFS - Google File Systém

✤ Distribuovaný file systém

✤ Rieši čo kde bude uložené a koľkokrát

✤ Virtuálny file systém

Monday, July 25, 11

Page 21: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

HIVE

✤ SQL nad “NoSQL” dátami

✤ súbory, SQL Databázy...

✤ Podporuje SELECT, JOIN, GROUP BY..

✤ Vyvinul Facebook

Monday, July 25, 11

Page 22: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

HBase

✤ NoSQL column oriented databáza

✤ Vychádza z Google BigTable

✤ podľa mňa asi najviac “enterprise” NoSQL

Monday, July 25, 11

Page 23: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

✤ Mahout - knižnica s MapReduce jobmi pre strojové učenie

✤ Pig - prasačiny ;-) vlastný jazyk pre ľahkú prácu s dátami

✤ Chuckwa - zberač logov

✤ ZooKeeper - drží všetko pohromade ;-) rieši zamykanie, synchornizáciu atď...

✤ Avro - serializér

Ďalšie

Monday, July 25, 11

Page 24: Spracovanie velkych dat MONOGRAM Tech Monday 27.07.2011

✤ Dát je veľa - distribuované výpočty sú nevyhnutnosťou

✤ Problematické uloženie dát - NoSQL

✤ Hadoop - framework s celým ekosystémom predistribuované výpočty založený na MapReduce

Záver

Monday, July 25, 11