Post on 11-Jul-2015
Google I/O Extended Budapest 2014
Ujj Tamás István
2014.06.25.
Google Cloud a gyakorlatbanBigData/Hadoop fejlesztésekhez
Google I/O Extended Budapest 20142
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ó
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
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
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
App EnginePlatform-as-a-Service
Google I/O Extended Budapest 20147
Szolgáltatás modellek
Google I/O Extended Budapest 20148
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
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
Compute EngineInfrastructure-as-a-Service
Google I/O Extended Budapest 201411
Szolgáltatás modellek
Google I/O Extended Budapest 201412
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
Á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
Apache HadoopGyakorlatias áttekintés
Google I/O Extended Budapest 201415
Mennyi adat!
Google I/O Extended Budapest 201416
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ó
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
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
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
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
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
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
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…
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.
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
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
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
Ö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)
Hadoop adminisztrációDEMO
Google I/O Extended Budapest 201430
Köszönöm a figyelmet!
Google I/O Extended Budapest 201431