540 likes | 627 Vues
Explore the definitions and concepts of big data, including the 3Vs and CAP theorem, learn about Hadoop basics, tools, and motivations, and delve into distributed systems and HDFS in the context of big data applications.
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