google cloud a gyakorlatban bigdata/hadoop fejlesztésekhez - google i/o extended budapest 2014

31
Google I/O Extended Budapest 2014 Ujj Tamás István 2014.06.25. Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez

Upload: gdg-budapest

Post on 11-Jul-2015

239 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Google I/O Extended Budapest 2014

Ujj Tamás István

2014.06.25.

Google Cloud a gyakorlatbanBigData/Hadoop fejlesztésekhez

Page 2: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Google I/O Extended Budapest 20142

Page 3: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

A ereje

Google I/O Extended Budapest 20143

• Többmiliárd keresés másodpercenként

• 6 milliárd órányi YouTube videó havonta

• 425 millió Gmail felhasználó

Page 4: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

A infrastruktúrája

Google I/O Extended Budapest 20144

• Fejlett globális hálózat> Sok ezer km optikai kábel

• Redundancia> A világ minden pontján jelen van

• A számítástudomány élvonala> Trendeket teremt a szoftveriparban

Page 5: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Középpontban a termék

Google I/O Extended Budapest 20145

• Nem kell rendszeradminisztrációval foglalkozni

• A Google vállalja a menedzsmentet> Adatbázis adminisztráció

> Szerver konfiguráció

> Terhelés kiegyensúlyozás

• Fejlesztőeszközök ismerős környezetekhez

• Teljesítmény monitorozás és finomhangolás egy egyszerű, összevont webes konzolon keresztül, vagy parancssorról

Page 6: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Skálázhatóság

Google I/O Extended Budapest 20146

• Menedzselt szolgáltatások> Automatikusan skálázódnak a felhasználók

számának növekedésével!

• Nyers szolgáltatások> Gyorsan és egyszerűen lehet új erőforrásokat

beépíteni

> Költséghatékonyság: csak azért kell fizetni, amit valóban használsz

> Akár több száz szerver néhány órára

Page 7: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

App EnginePlatform-as-a-Service

Google I/O Extended Budapest 20147

Page 8: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Szolgáltatás modellek

Google I/O Extended Budapest 20148

Page 9: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

App Engine

Google I/O Extended Budapest 20149

• Népszerű nyelvek és keretrendszerek> Python, Java, PHP, Go

> Django, Flask, Spring, stb.

• A fejlesztő feladata a kód megírása (utópia)

• Különböző adattárolási lehetőségek> Cloud SQL: hagyományos MySQL

> Datastore: sémátlan NoSQL adatbázis

> Cloud Storage: felhő alapú objektumtár

Page 10: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

App Engine

Google I/O Extended Budapest 201410

• Beépített szolgáltatások> Pl. Memcache

• Megszokott fejlesztőeszközök> Eclipse, IntelliJ, Maven, Git, PyCharm, stb.

• Tesztelés a fejlesztő gépén

• Akár napi 7 milliárd kérés kiszolgálása

Page 11: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Compute EngineInfrastructure-as-a-Service

Google I/O Extended Budapest 201411

Page 12: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Szolgáltatás modellek

Google I/O Extended Budapest 201412

Page 13: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Compute Engine

Google I/O Extended Budapest 201413

• Nagyteljesítményű virtuális gépek> A feladatnak megfelelő konfiguráció választható

> Linux VM-ek: jól konfiguráltak, biztonságosak

• Kihasználják a Google hálózati kapacitásait> Komoly cluster-ek építhetők

• Adatközpontok USA-ban, Európában, Ázsiában

• A gépek indítása nagyon egyszerű> RESTful API, parancssor, webes konzol

Page 14: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Árak

Google I/O Extended Budapest 201414

• Az App Engine ingyenes! (egy kvóta eléréséig)

• Valóban csak a használatért kell fizetni

• Compute Engine> 1-16 mag, 2-100GB RAM, $0.07-$1.3/óra

> Memória és CPU aránya variálható

• Háttértár(100GB/hó): HDD $4, SSD $33

Page 15: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Apache HadoopGyakorlatias áttekintés

Google I/O Extended Budapest 201415

Page 16: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Mennyi adat!

Google I/O Extended Budapest 201416

Page 17: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

A Hadoop gyökerei

Google I/O Extended Budapest 201417

• Google publikációk> 2003 - The Google File System

> 2004 - MapReduce: Simplified Data Processing onLarge Clusters

• A Yahoo! felkarolta, 2005-ben készült el

• Ma Apache License alatt áll

• 2012-től jelentős változások, új generáció

Page 18: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Mi az a Hadoop?

Google I/O Extended Budapest 201418

• Szűk értelemben 2 technológia együttműködése> HDFS - Hadoop Distributed Filesystem

> YARN - Yet Another Resource Negotiator(MapReduce v2 és még sok más)

• Nagy (tényleg!) méretű adatfeldolgozó clusterek

• Viszonylag olcsó, hétköznapi szervereken

• Tágabb értelemben egy egész ökoszisztéma

Page 19: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Célok - HDFS

Google I/O Extended Budapest 201419

• Több millió nagy file tárolása> Akár egyenként több tíz GB

> Összességében akár PB nagyságrend

• Horizontális skálázódás> RAID helyett JBOD modell

> Adat replikáció az alkalmazásrétegben

Page 20: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Célok - HDFS

Google I/O Extended Budapest 201420

• Nagy átbocsátóképességre optimalizált> Előnyben a batch jellegű stream I/O a kis

késleltetésű, interaktív hozzáférésekkel szemben

• A gépek tönkremennek, főleg a lemezek> Nem különleges eset, napi rutin

• Együttműködés a YARN-nal> Helyben való feldolgozás

Page 21: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Célok - YARN

Google I/O Extended Budapest 201421

• Egyszerű fejlesztés elosztott környezetben> Nincs socket programozás

> Nem kell foglalkozni szálakkal, szinkronizációval

> Semmi különös technikára nincs szükség óriási mennyiségű adat kezeléséhez

• Skálázhatóság> Állapotmentes taszkok, nem kommunikálnak

közvetlenül (share nothing system), bármely gépen futhatnak

> Teljesen átlátszóan bővíthető a cluster

Page 22: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Célok - YARN

Google I/O Extended Budapest 201422

• Automatikus párhuzamosítás, terheléselosztás> A fejlesztőnek elég a logikát megírnia

> A keretrendszer ott futtatja, ahol az adat van

• A hibák mindennaposak> Hibás node-ok detektálása

> Taszkok automatikus újrafuttatása

> Egy taszk vagy teljesen lefut, vagy eldobjuk és újrafuttatjuk

Page 23: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Google I/O Extended Budapest 201423

• Social media óriás> Több mint 100 petabyte adat

> Több száz milliárd fotó

> Több száz millió új fotó naponta

• Facebook Messaging> Hadoop áll mögötte

• Reportok készítése> Fejlesztőknek, elemzőknek, termékmenedzsereknek,

reklámpartnereknek

Page 24: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Egy tipikus Hadoop cluster

Google I/O Extended Budapest 201424

• 100 node (5 rack)

• Tipikus node:> 3 GHz-es dual hex core CPU

> 64-378 GB RAM

> 24-36 TB lemezterület (6-10 TB effektív tárterület)

• Az egész cluster:> 6.4-37.8 TB RAM (RAM!!! Wow…)

> Akár 1 PB effektív tárterület

> A Facebook clustere nem tipikus…

Page 25: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

De mit lehet ezzel kezdeni?

Google I/O Extended Budapest 201425

• TB-os nagyságrendű adatok feldolgozása memóriában egyszerűen és hibatűrően

> Apache Spark, a MapReduce trónfosztója

> Java, Scala és Python

> Stream-feldolgozás, adatbányászat, gépi tanulás, ETL, felderítő adatelemzés, gráf számítások, stb.

Page 26: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

De mit lehet ezzel kezdeni?

Google I/O Extended Budapest 201426

• PB-os nagyságrendű adatok interaktív kezelése> Cloudera Impala, az első valódi SQL-on-Hadoop

> Valóban gyors lekérdezési sebesség

> Analitikus lekérdezésekben gyilkos

> Adattárház Hadoop alapon

Page 27: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Hol jön képbe a Google Cloud?

Google I/O Extended Budapest 201427

• Durva becslés: minden TB kapacitás kb. $1000

• Egy valamirevaló Hadoop cluster komoly befektetés már a fejlesztés elején

• Ne legyenek illúziók > Hosszútávon a Cloud drágább, de a költség eloszlik

• A trükk> Fejlesztés helyi, pszeudo-elosztott környezetben

> Teszteléshez cluster automatizált felépítése, használata, majd lebontása: költségminimalizálás

Page 28: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Megoldandó problémák

Google I/O Extended Budapest 201428

• A Hadoop-ot alapvetően nem a Compute Enginemögött álló infrastruktúrára optimalizálták

> Pl. RAID és egyéb alacsonyszintű háttértár menedzsment szolgáltatások rontják a teljesítményt, csökkentik a replikáció előnyeit

• A lebontás/felépítés problémás> Fix IP címért fizetni kell

> A háttértárakat meg kell őrizni kikapcsolt állapotban is, ez $4/100GB/hó költséget jelent

Page 29: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Összefoglalás

Google I/O Extended Budapest 201429

• Apache Hadoop és Google Cloud> A fejlesztés korai szakaszában ideális

> Éles rendszereknél szuboptimális, vagy túl drága

> Fejlesztési ciklus– Fejlesztés kis teljesítményű, lokális gépeken

– Cluster felépítése (10-15 perc, automatizált)

– Adatok betöltése (opcionális, időigényes lehet)

– Teszt futtatása valós környezetben

– Adatok törlése (opcionális)

– Cluster leállítása és lebontása (5-10 perc, automatizált)

Page 30: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Hadoop adminisztrációDEMO

Google I/O Extended Budapest 201430

Page 31: Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez - Google I/O Extended Budapest 2014

Köszönöm a figyelmet!

Google I/O Extended Budapest 201431