Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
BIG DATA Kazi Sándor Bevezetés, HDFS 2014.
2
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.”
3
Big Data „definíció” – 3V
Gartner definíció (D. Laney): „Big data are high volume, high velocity, and/or high 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
4
Big Data – gyakorlatiasabban
Méret 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 big data 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”
5
CAP-tétel 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 A P Eventually consistent SPOF-land Sorry, we’re closed
6
„We believe that more than half of the world’s data will be stored in Apache Hadoop by 2016” /Hortonworks, 2012./
7
Hadoop – alaptételek Adatközpontú „A feladatot/számítást könnyebb szállítani, mint az adatot!” Hibatűrő Lesznek hardver hibák, kezelni kell Magasszintű A usernek ne kelljen a végrehajtás részleteivel foglalkozni Streaming Kell legyen streaming adathozzáférés Egyszerű koherencia-modell WORM: Write-Once-Read-Many
8
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
9
Felhasználók és Fejlesztők
10
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 MB/s sebességgel 2,5-5 óra 1TB felolvasása SSD-ről MB/s sebességgel 0,5-1 óra Skálázhatóság biztosítása Nem csak CPU alapon
11
Hadoop – Csomagok (stack)
Menedzsment Eszközök Adattárolás, erőforrások, biztonság Import/Export interfészek
12
Adattárolás, erőforrások, biztonság
13
Adattárolás, erőforrások, biztonság
Hadoop Distributed FileSystem Elosztott fájlrendszer Adattárolás, erőforrások, biztonság HDFS
14
Adattárolás, erőforrások, biztonság
MRv2 MapReduce interfész A továbbiakban ismertetett eszközök egy része épít rá, egy része nem Yet Another Resource Negotiator YARN = fonálgombolyag „a MapReduce 2.0 elosztott operációs rendszere” Erőforráskezelő Adattárolás, erőforrások, biztonság YARN MRv2 HDFS
15
Adattárolás, erőforrások, biztonság
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 YARN MRv2 HDFS
16
Adattárolás, erőforrások, biztonság
Knox REST API gateway Authentikáció, authorizáció, audit, SSO (Single-Sign-On) Sentry Jogosultságkezelés Szerep-alapú (role based) Adattárolás, erőforrások, biztonság YARN MRv2 HDFS
17
Hadoop adat interfészek
Adattárolás, erőforrások, biztonság YARN MRv2 HDFS Import/Export interfészek
18
Adattárolás, erőforrások, biztonság 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 YARN MRv2 HDFS Import/Export interfészek
19
Adattárolás, erőforrások, biztonság Import/Export interfészek
Flume, Chukwa, Scribe Loggyűjtés és aggregálás Adatgyűjtő és monitorozó rendszer elosztott rendszerekhez (Chukwa) Streaming logfeldolgozás A Scribe inkább push jellegű, a többi inkább pull Adattárolás, erőforrások, biztonság YARN MRv2 HDFS Import/Export interfészek
20
Elemzés és adathozzáférés
Eszközök Adattárolás, erőforrások, biztonság YARN MRv2 HDFS Import/Export interfészek
21
Adattárolás, erőforrások, biztonság 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 YARN MRv2 HDFS Import/Export interfészek
22
Adattárolás, erőforrások, biztonság 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 Cascading support Eszközök Adattárolás, erőforrások, biztonság YARN MRv2 HDFS Import/Export interfészek
23
Adattárolás, erőforrások, biztonság 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 YARN MRv2 HDFS Import/Export interfészek
24
Adattárolás, erőforrások, biztonság 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 YARN MRv2 HDFS Import/Export interfészek
25
Adattárolás, erőforrások, biztonság Import/Export interfészek
Storm Streaming feldolgozás Spark Elosztott adatelemzés a memóriában Shark „Hive a memóriában” Eszközök Adattárolás, erőforrások, biztonság YARN MRv2 HDFS Import/Export interfészek
26
Adattárolás, erőforrások, biztonság Import/Export interfészek
Hama Apache BSP Bulk Synchronous Parallel paradigma Graph Library hálózatelemzéshez Eszközök Adattárolás, erőforrások, biztonság YARN MRv2 HDFS Import/Export interfészek
27
Adattárolás, erőforrások, biztonság 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 YARN MRv2 HDFS Import/Export interfészek
28
Adattárolás, erőforrások, biztonság 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 YARN MRv2 HDFS Import/Export interfészek
29
Adattárolás, erőforrások, biztonság Import/Export interfészek
Menedzsment eszközök Menedzsment Eszközök Adattárolás, erőforrások, biztonság YARN MRv2 HDFS Import/Export interfészek
30
Adattárolás, erőforrások, biztonság Import/Export interfészek
Oozie Hadoop workflow ütemezés Zookeeper elosztott rendszer koordináció (Curator: ZooKeeper library-k) Ambari Hadoop cluster monitoring és menedzsment Menedzsment Eszközök Adattárolás, erőforrások, biztonság YARN MRv2 HDFS Import/Export interfészek
31
Adattárolás, erőforrások, biztonság 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 YARN MRv2 HDFS Import/Export interfészek
32
Adattárolás, erőforrások, biztonság 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 YARN MRv2 HDFS Import/Export interfészek
33
Adattárolás, erőforrások, biztonság Import/Export interfészek
RapidMiner (Studio/Server) Elemző szoftver Radoop integráció Menedzsment Eszközök Adattárolás, erőforrások, biztonság YARN MRv2 HDFS Import/Export interfészek
34
Adattárolás, erőforrások, biztonság Import/Export interfészek
Menedzsment Eszközök Adattárolás, erőforrások, biztonság YARN MRv2 HDFS Import/Export interfészek
35
Apache Tajo BigData adattárház támogatás (ETL, stb.) S3: Simple Storage Service EC2: Elastic Compute Cloud EMR: Elastic MapReduce Kinesis: streaming Adatelemző szoftver Cloudera Impala SQL query engine (Hadoopon) Apache Whirr Cloud interfész Apache Nutch Elosztott web keresőmotor Monitoring rendszer Apache Gora Perzisztens adattárolás a memóriában Apache Cassandra Oszlop alapú NoSQL adatbázis
36
Történeti áttekintés
37
YARN: Yet Another Res… YARN: Hadoop v0.23 óta („Hadoop 2.0”) „a Hadoop 2.0 operációs rendszere” Elválasztották a feladatkezelést a MapReduce frameworktő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
38
Végrehajtás – MRv1 A JobTracker kezeli az erő- források elosztását is
39
Végrehajtás – YARN Submit AM Start Checkin Res-Req Start Heartbeat
State Finish
40
Ü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: Name quota: metaadat bejegyzések max. száma Space quota: nomen est omen
41
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. restart szá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
43
HDFS – alapok Célok / Elvárások / Alapelvek:
Hibatűrés (és gyors elhárítás) (automatikus replikáció) Streaming data – 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 MB egy blokk Általában jobb a „több átlagos” diszk, mint „pár extrém nagy” Többféle szerver szerep: Namenode Datanode Secondary Namenode
44
HDFS – Namenode Metaadat tároló:
Ő felel az fsimage (namespace image) tárolásáért: A HDFS könyvtárstruktúra utolsó checkpointja Az fsimage nem közvetlenül íródik Edit log: logfile írása append jelleggel Namenode induláskor: fsimage felolvasása A logok alapján az fsimage módosítása Új fsimage checkpoint kií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…
45
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 Secondary Namenode „félreérthető elnevezés”: nem failover / HA node Időközönként beszerkeszti az fsimage-be a logfile tartalmát Gyorsabb Namenode indulás
46
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: Nagyra nőtt logfile Secondary Namenode probléma Lassú diszk egy lassú diszk is elég lehet, hogy a teljes folyamat lassuljon Redundáns tárhely bottleneck mindenhová kiírjuk az fsimage-et, párhuzamosan, egy is lassít
47
HDFS – Olvasás A kliensek közvetlenül elérik a Datanode-okat érik el
48
HDFS – Írás A replikációt már nem a kliens, hanem a Namenode indukálja
49
Tervezés Klaszter méretezés, Node méretezés, példa
50
Tervezés – per node Slave node-ok:
DataNode, TaskTracker/NodeManager, HBase RegionServer, … Master node-ok: Namenode JobTracker/ResourceManager Elég egy slave node extra RAM-mal Ha „master node”-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
51
Tervezés – architektúra
Hortonworks: Cluster Planning Guide link Négyféle workload pattern Balanced: Kiegyenlített CPU és diszk kihasználtság Compute Intensive: Inkább több/erősebb CPU kell I/O intensive: Inkább több diszk kell Unknown or evolving workload patterns Javaslat: balanced, vagy kis pilot után döntés Per node: Slave illetve Master szerep Hálózat: „változó” Szerep CPU Memória Diszk RAID, NAS Slave 4-8 mag 24-48 GB 8-12 x 2-3 TB Nem Master 16-24 mag 48-64 GB 4-8 x 1 TB Igen (+diszk)
52
Tervezés – példa Tegyük fel, hogy egy cég át szeretne térni Hadoop cluster-es szerverparkra, amelyen naponta 90GB új bejövő adatot szeretnének tárolni, mindig az utóbbi egy évre nézve. RF = 3, egy gép: 8-12 x 2-3TB Adatmennyiség tárolása kb. 33TB, replikációval kb. 100TB Egyéb tárolásra és elemzésekre +25% kb. 125TB OS és Hadoop logok +10% kb. 140TB Ezek alapján 4-10 Datanode-ra van szükségünk gépkonfigurációtól függően. Ha ezt sokalljuk, logokról lévén szó, csökkenthetjük…
53
Tömörítés – HDFS Diszk (fájl szintű tömörítés) gzip bzip2 lzo
Az egészet ki kell csomagolni, hogy egy szeletet megkapjunk MR jobnál a Map-hoz minden blokkot el kell juttatni bzip2 Bárhol elkezdve értelmesen kicsomagolható Lassú, és nem annyira hatékonyan tömörít, mint a gzip Nem nagyon használják lzo A gzip-hez hasonlít, de metaadat fájl segítségével elérhető, hogy ne kelljen az összes szelet Adattovábbítás: Tipikusan Snappy tömörítéssel Nagyon kis overhead, stream tömörítés is 20-30% teljesítménynyereség is lehet általa
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.