540 likes | 621 Views
BIG DATA. Kazi Sándor. Bevezetés, HDFS. 2014. Big Data „definíció” – szótári. Definíció „ Nincs” Több is van Oxford dictionary : „ data sets that are too large and complex to manipulate or interrogate with standard methods or tools ” O’Reilly definíció (M. Loukides ):
E N D
BIG DATA Kazi Sándor Bevezetés, HDFS 2014.
Big Data „definíció” – szótári Definíció „Nincs” Több is van Oxford dictionary: „data sets that are too large and complex to manipulate or interrogate with standard methods or tools” O’Reilly definíció (M. Loukides): „As storage capacity continues to expand, today’s “big” is certainly tomorrow’s “medium” and next week’s “small.” The most meaningful definition I’ve heard: “big data” is when the size of the data itself becomes part of the problem.”
Big Data „definíció” – 3V Gartner definíció (D. Laney): „Big data are high volume, high velocity, and/orhigh variety information assets that require new forms of processing to enable enhanced decision making, insight discovery and process optimization.” A fenti definíciót szokás 3V-nek is nevezni: Volume – méret Velocity – adatsebesség Variety – egyre többféle típusú adat Veracity – igazságtartalom, tisztaság Validity – helyesség Variability – egyre rugalmasabb struktúrák Value – nagy értékű Visualisation – vizualizálhatóság
Big Data – gyakorlatiasabban Méret 50-100 GB alatt nem számít az adat „Big Data”-nak, mert egy nagy memóriával rendelkező felhő szolgáltatással ezek az adatok még nagyon jól kezelhetők 3V A konkrét felhasználásból (lényegében a V-kből) következtetünk, hogy bigdata problémával állunk-e szemben Eszközök A legfontosabb, hogy tudjuk-e az aktuális eszköztárunkkal jól kezelni az adatokat (ha igen, akkor nincs szükség ilyesmire) „data sets that are too large and complex to manipulate or interrogate with standard methods or tools”
CAP-tétel A Elosztott rendszerekben az alábbi tényezőkből maximum kettő garantálható egyszerre: C: Consistency/Konzisztencia Adott időpillanatban minden node ugyanazt „ismeri” A: Availability/Rendelkezésreállás Minden kérdésre érkezik válasz (folyamatos üzemidő) P: Partition-tolerance/Partícionálás-tűrés A rendszer képes kezelni a hibákat (…) CA: relációs adatbázisok (Oracle, MySQL, …) CP: HBase, BigTable, MongoDB, Redis AP: Cassandra, Amazon DynamoDB, Voldemort C P Eventually consistent SPOF-land Sorry, we’re closed
„We believe that more than half of the world’s datawill be stored in Apache Hadoop by 2016”/Hortonworks, 2012./
Hadoop– alaptételek Adatközpontú „A feladatot/számítást könnyebb szállítani, mint az adatot!” Hibatűrő Lesznekhardverhibák, kezelnikell Magasszintű A usernek ne kelljen a végrehajtásrészleteivelfoglalkozni Streaming Kell legyen streaming adathozzáférés Egyszerűkoherencia-modell WORM: Write-Once-Read-Many
Hadoop– mi nem és mi igen? NEM Nem egy szoftver Nem egy adatbázis Nem SQL for Big Data Eszközök, könyvtárak és módszerek egy keretrendszere (framework): Open Source (ASL) Jól skálázódó Automatikus replikáció Alkalmazás szintű hibatűrés Hétköznapi hardveren (commodity hardware) vagy felhőben
Hadoop– Motiváció Emlékezzünk vissza a Big Data „definíciókra” Lényegében a motivációt fogalmazták meg Elosztott rendszerekre tervezünk Meghibásodások kezelése • Akár hálózati hibák, vagy teljes gépek kiesése is SPOF (el)kerülésére • Már amennyire ez lehetséges Adatsebesség növelésére 1TB felolvasása HDD-ről 60-120MB/s sebességgel 2,5-5 óra 1TB felolvasása SSD-ről 300-600MB/s sebességgel 0,5-1 óra Skálázhatóság biztosítása Nem csak CPU alapon
Hadoop– Csomagok (stack) Menedzsment Eszközök Adattárolás, erőforrások, biztonság Import/Export interfészek
Adattárolás, erőforrások, biztonság Adattárolás, erőforrások, biztonság
HadoopDistributedFileSystem Elosztott fájlrendszer Adattárolás, erőforrások, biztonság HDFS
MRv2 • MapReduceinterfész • A továbbiakban ismertetett eszközök egy része épít rá, egy része nem YetAnotherResourceNegotiator • YARN = fonálgombolyag • „a MapReduce 2.0 elosztott operációs rendszere” • Erőforráskezelő Adattárolás, erőforrások, biztonság MRv2 YARN HDFS
Mahout: ejtsd: „máháut” • Skálázható gépi tanulási programkönyvtár biztosítását célozza meg • Több implementált algoritmus • Nem mindent triviális, és nem mindent lehet egyáltalán implementálni Adattárolás, erőforrások, biztonság MRv2 YARN HDFS
Knox • REST API gateway • Authentikáció, authorizáció, audit, SSO (Single-Sign-On) Sentry • Jogosultságkezelés • Szerep-alapú (rolebased) Adattárolás, erőforrások, biztonság MRv2 YARN HDFS
Hadoop adat interfészek Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Sqoop • SQL adatbázisok interfésze Avro • Szerializáció (objektum import/export) Falcon • Folyamat-életciklus menedzsment, adatáramlás-vezérlés, adatfeldolgozás Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Flume, Chukwa, Scribe • Loggyűjtés és aggregálás • Adatgyűjtő és monitorozó rendszer elosztott rendszerekhez (Chukwa) • Streaminglogfeldolgozás • A Scribe inkább push jellegű, a többi inkább pull Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Elemzés és adathozzáférés Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Cascading • Alkalmazás platform (JAVA réteg a MapReduce fölött) Scalding • Scala API a Cascadinghez Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
HBase: Ejtsd: „édzsbéz” • Elosztott oszlopstrukturált és tömörített adatbázis (noSQL) • Gyors aggregálhatóság, real-time írás/olvasás nagyméretű adatok felett TEZ • Több Map és Reduce művelet tetszőleges sorrendben • Cascadingsupport Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Hive: • Adattárház Hadoop-kompatibilis fájlrendszerek felett • Adatösszegzés, ad-hoc lekérdezések és nagy adathalmazok analízisének támogatása • Saját SQL-szerű lekérdező nyelv: HiveQL • MapReduce támogatás (ha a HiveQL nem lenne hatékony) Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Pig: • Mert a disznó gyakorlatilag bármit megeszik • Platform nagyméretű adatok analízisére • Saját magasszintű nyelv: Pig Latin • Jól párhuzamosítható („… embarrassingly parallel…”) Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Storm • Streaming feldolgozás Spark • Elosztott adatelemzés a memóriában Shark • „Hivea memóriában” Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Hama • Apache BSP • BulkSynchronous Parallel paradigma • GraphLibrary hálózatelemzéshez Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Drill • SQL alapú elosztott lekérdező interaktív elemzésekhez Accumulo • Key-value adatbázis (noSQL) Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Lucene • Szövegelemzési, természetes nyelv feldolgozási eszközök indexelő és kereső szolgáltatáshoz Solr • Keresőplatform a Lucene fölé Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Menedzsment eszközök Menedzsment Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Oozie • Hadoopworkflow ütemezés • Zookeeper • elosztott rendszer koordináció (Curator: ZooKeeperlibrary-k) • Ambari • Hadoopcluster monitoring és menedzsment Menedzsment Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Apache Software Foundation • Open-source technológiák Sok esetben cégektől kerültek ASL alá • Scribe: Facebook • Scalding, Storm: Twitter • Tez: Hortonworks Menedzsment Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Disztribútoroktól is vásárolható • Kompatibilitás • Garanciák • Support • Oktatás • … Menedzsment Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
RapidMiner (Studio/Server) • Elemző szoftver Radoop • integráció Menedzsment Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Menedzsment Eszközök Adattárolás, erőforrások, biztonság MRv2 YARN HDFS Import/Export interfészek
Apache Tajo BigData adattárház támogatás (ETL, stb.) • S3: Simple Storage Service • EC2: ElasticComputeCloud • EMR: ElasticMapReduce • Kinesis: streaming Adatelemző szoftver ClouderaImpala SQL queryengine (Hadoopon) ApacheWhirr Cloud interfész Apache Nutch Elosztott web keresőmotor Monitoring rendszer Apache GoraPerzisztens adattárolás a memóriában Apache CassandraOszlop alapú NoSQL adatbázis
YARN:YetAnother Res… YARN: Hadoop v0.23 óta („Hadoop 2.0”) „a Hadoop 2.0 operációs rendszere” Elválasztották a feladatkezelést a MapReduceframeworktől Előtte: JobTracker: Master, feladatelosztás és -felügyelet TaskTracker: Feladatkezelő egy node-nál Slot: TaskTracker egy feldolgozó egysége YARN óta: ResourceManager: Globális erőforrásfelügyelet (Sched + AsM) NodeManager: Container kezelő egy node-nál Container ApplicationMaster: Master, feladatelosztás és felügyelet
Végrehajtás – MRv1 A JobTracker kezeli az erő- források elosztását is
Végrehajtás – YARN • Submit • AM Start • Checkin • Res-Req • Start • Heartbeat • State • Finish
Ütemezés és Kvóták Ütemezés • FIFO: ez volt a legelterjedtebb eleinte MR esetében • kis slot igényű feladatnak is sokszor várni kellett • Fair Scheduler • Idővel átlagosan ugyannyi erőforrást kap mindenki • Pool-okra osztja a jobokat és ezeknek oszt erőforrást Kvóták • Ha a HDFS-en „elfogy” a hely • Tipikusan egy-két nagy fájl miatt • Pl.: fájlok join-olásából keletkezve • Két típus, részfára lehet definiálni: • Namequota: metaadat bejegyzések max. száma • Spacequota: nomen est omen
Meghibásodások kezelése Ha egy taszk elhal, újraindítjuk (JT, AM) • Elhal = nem jön HeartBeat, vagy hibát jelez • Nem tudjuk, miért halt el, ezért kell max. restartszám • Lehet, hogy a programkód rossz Spekulatív indítás is lehet: • Több helyen is elindítunk egy taszkot, a leggyorsabb nyer • Egyetlen lassú node kevésbé akasztja meg a dolgokat • Akkor jó, ha van szabad erőforrás Ha elhal a JT/AM: • Amikor újraindul, minden taszk elölről kezdődik • Van HA megoldás: több JT/AM • Probléma: konzisztencia közöttük
HDFS – alapok Célok / Elvárások / Alapelvek: • Hibatűrés (és gyors elhárítás) (automatikus replikáció) • Streamingdata – adatfolyam hozzáférés • Nagy adathalmazok • Egyszerű koherencia – WORM (write-once-read-many) • A számítást olcsóbb szállítani (mint az adatot) • Hordozhatóság (heterogén hardver) Blokkalapú fájlrendszer • Tipikusan 64-256MB egy blokk • Általában jobb a „több átlagos” diszk, mint „pár extrém nagy” Többféle szerver szerep: • Namenode • Datanode • SecondaryNamenode
HDFS – Namenode Metaadat tároló: • Ő felel az fsimage (namespace image) tárolásáért: • A HDFS könyvtárstruktúrautolsócheckpointja • Az fsimage nem közvetlenül íródik • Edit log: logfile írása appendjelleggel Namenode induláskor: • fsimage felolvasása • A logok alapján az fsimage módosítása • Új fsimagecheckpointkiírása SPOF Ha leáll, felhasználói beavatkozás szükséges… Sok kicsi fájl esetén sequence file vagy map file…
HDFS – Datanode és SNN Datanode • Adattároló node (blokkokat kap) • Metadat nélkül a blokkok kvázi „elvesztek” • A replikáció klaszter szintű (default RF: 3) • Nincs szükség lokálisan RAID-re • Időközönként jelentik a NN-nak, mi van náluk • Heartbeat SecondaryNamenode • „félreérthető elnevezés”: nem failover / HA node • Időközönként beszerkeszti az fsimage-be a logfile tartalmát • Gyorsabb Namenodeindulás
HDFS – Namenode++ SPOF elkerülésére megoldás: • Lokálisan RAID • Metaadat (fsimage + edit log) több helyen is tárolva • Egyszerre egy namenode aktív, a többi passzív • Plusz teher: Namenode konzisztencia fenntartása Lassú indulás lehetséges okai: • Nagyranőttlogfile • Secondary Namenode probléma • Lassúdiszk • egylassúdiszk is elég lehet, hogy a teljesfolyamatlassuljon • Redundánstárhely bottleneck • mindenhovákiírjukazfsimage-et, párhuzamosan, egy is lassít
HDFS – Olvasás • A kliensek közvetlenül elérik a Datanode-okat érik el
HDFS – Írás • A replikációt már nem a kliens, hanem a Namenode indukálja
Tervezés Klaszter méretezés, Nodeméretezés, példa
Tervezés – per node Slave node-ok: • DataNode, TaskTracker/NodeManager, HBaseRegionServer, … Master node-ok: • Namenode • JobTracker/ResourceManager • Elég egy slavenode extra RAM-mal • Ha „masternode”-ot kapnak, az segítheti a NN migrációt (hibánál) Általánosságban: • Lehetőleg maradjon üres memória-slot (bővíthetőség) • Érdemes „középkategóriából” választani • Olcsóbb is, mint a top processzorok • Áramfelvétel általában optimálisabb • Master gépeknél érdemes lehet redundáns PSU-t alkalmazni