HBase bemutató: HBase bevezetés és Facebook esettanulmány

Ez a HBase oktató blog bemutatja, mi is az a HBase és annak jellemzői. Ez magában foglalja a Facebook Messenger esettanulmányát is, hogy megértsük a HBase előnyeit.

Amint azt a blog, a HBase a Hadoop ökoszisztémánk elengedhetetlen része. Tehát most át szeretném vinni a HBase bemutatóján, ahol bemutatom Önnek az Apache HBase-t, majd végigvesszük a Facebook Messenger esettanulmányát. A HBase oktatóblog következő témáival foglalkozunk:



Apache HBase bemutató: Történelem

Kezdjük a HBase történetével, és ismerjük meg, hogyan fejlődött a HBase egy bizonyos idő alatt.



A HBase története - HBase bemutató - Edureka

  • Az Apache HBase a Google BigTable-jének mintájára készült, amelyet különböző Google-szolgáltatások, például a Maps, a Finance, a Earth stb.
  • Az Apache HBase a Powerset for Natural Language Search cég projektjeként indult, amely hatalmas és ritka adathalmazokat kezelt.
  • Az Apache HBase először 2007 februárjában jelent meg. Később, 2008 januárjában a HBase az Apache Hadoop alprojektje lett.
  • 2010-ben a HBase lett az Apache legfelső szintű projektje.

HBase bemutató | NoSQL adatbázisok | Edureka



Miután megismerte az Apache HBase történetét, kíváncsi lenne, hogy mi az Apache HBase? Menjünk tovább és nézzünk meg.

Apache HBase bemutató: Bevezetés a HBase-be

A HBase egy nyílt forráskódú, többdimenziós, elosztott, méretezhető és a NoSQL adatbázis Java nyelven írva. A HBase fut a tetején HDFS (Hadoop Distributed File System) és BigTable-szerű képességeket biztosít a Hadoop számára. Úgy tervezték, hogy hibatűrő módon tárolja a ritka adathalmazok nagy gyűjteményét.

Mivel a HBase nagy áteresztőképességet és alacsony késési időt ér el azáltal, hogy gyorsabb olvasási / írási hozzáférést biztosít hatalmas adathalmazokon. Ezért a HBase azoknak az alkalmazásoknak a választása, amelyek gyors és véletlenszerű hozzáférést igényelnek nagy mennyiségű adathoz.



Tömörítést, memóriában történő műveleteket és Bloom-szűrőket (adatstruktúra, amely megmondja, hogy van-e érték egy készletben vagy sem) a gyors és véletlenszerű írás-írás követelményeinek teljesítése érdekében.

Értsük meg egy példán keresztül: A sugárhajtómű különféle adatokat generál különböző érzékelőkből, például nyomásérzékelőből, hőmérséklet-érzékelőből, sebességérzékelőből stb., Ami jelzi a motor állapotát. Ez nagyon hasznos a járat problémáinak és állapotának megértéséhez. A motor folyamatos üzemeltetése repülésenként 500 GB adatot generál, és naponta megközelítőleg 300 ezer repülés van. Tehát az ilyen adatokra szinte valós időben alkalmazott Engine Analytics felhasználható a problémák proaktív diagnosztizálására és a nem tervezett leállások csökkentésére. Ehhez elosztott környezetre van szükség nagy mennyiségű adat tárolásához gyors véletlenszerű olvasás és írás valós idejű feldolgozáshoz. Itt jön a HBase a megmentésért. A következő blogomban részletesen beszélek a HBase Read and Write-ról HBase építészet .

Mint tudjuk, a HBase egy NoSQL adatbázis. Tehát, mielőtt többet megtudna a HBase-ről, először beszéljünk a NoSQL adatbázisokról és azok típusairól.

java kód a program leállításához

Apache HBase oktatóanyag: NoSQL adatbázisok

A NoSQL azt jelenti Nem csak az SQL . A NoSQL adatbázisokat úgy modellezik, hogy táblázatos formátumokon kívül más adatokat is ábrázolhassanak. Különböző formátumokat használ az adatok ábrázolásához az adatbázisokban, és így különböző típusú NoSQL adatbázisok léteznek az ábrázolási formátumuk alapján. A NoSQL adatbázisok többsége kihasználja a rendelkezésre állást és a sebességet a következetesség helyett. Most lépjünk előre, és értsük meg a NoSQL adatbázisok különböző típusait és azok reprezentációs formátumait.

Kulcsértékű üzletek:

Ez egy séma nélküli adatbázis, amely kulcsokat és értékeket tartalmaz. Minden kulcs egy értékre mutat, amely egy bájt tömb, lehet karakterlánc, BLOB, XML stb. A Lamborghini kulcsfontosságú, és értéket mutathat Gallardo, Aventador, Murciélago, Reventón, Diablo, Huracán, Veneno, Centenario stb.

A Key-Value tárolja az adatbázisokat: Aerospike, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, HyperDex, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, Berkeley DB.

Felhasználási eset

A kulcsérték-tárolók jól kezelik a méretet, és jól tudják feldolgozni az olvasási / írási műveletek állandó áramlását alacsony késéssel. Ettől tökéletesekFelhasználói preferenciák és profiltárak,Termékajánlatok a kiskereskedői webhelyen megtekintett legújabb cikkek a jövőbeni vásárlói termékajánlások elősegítéséreA hirdetést kiszolgáló vásárlói vásárlási szokások személyre szabott hirdetéseket, kuponokat stb. Eredményeznek valós időben.

Dokumentumorientált :

Ugyanazt a kulcsértékpárt követi, de félig strukturált, mint az XML, JSON, BSON. Ezeket a struktúrákat dokumentumoknak tekintik.

Dokumentum alapú adatbázisok: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB.

Use-Case

Mivel a dokumentum támogatja a rugalmas sémát, a gyorsan olvasható írás és particionálás alkalmassá teszi felhasználói adatbázisok létrehozására különféle szolgáltatásokban, például a twitter, az e-kereskedelmi webhelyek stb.

Oszloporientált:

Ebben az adatbázisban az adatokat cellákban oszlopokba csoportosítva tárolják, nem pedig sorokba. Az oszlopok logikailag oszlopcsaládokba vannak csoportosítva, amelyek létrehozhatók vagy a séma meghatározása során, vagy futás közben.

Az ilyen típusú adatbázisok az oszlopnak megfelelő összes cellát folyamatos lemezbejegyzésként tárolják, így sokkal gyorsabbá válik a hozzáférés és a keresés.

Oszlopalapú adatbázisok: HBase, Accumulo, Cassandra, Druid, Vertica.

Use-Case

Támogatja a hatalmas tárhelyet, és gyorsabb írási hozzáférést tesz lehetővé rajta. Ez teszi az oszloporientált adatbázisokat alkalmassá az ügyfelek viselkedésének tárolására az e-kereskedelem webhelyén, olyan pénzügyi rendszerekben, mint a Google Finance és a tőzsdei adatok, a Google maps stb.

Grafikon orientált:

Tökéletes, rugalmas grafikus ábrázolás, az SQL-sel ellentétben. Az ilyen típusú adatbázisok könnyedén megoldják a skálázhatóság problémáit, mivel olyan éleket és csomópontokat tartalmaznak, amelyek a követelményeknek megfelelően bővíthetők.

Grafikon alapú adatbázisok: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog.

Felhasználási eset

Ez alapvetően a csalások felderítésében, a valós idejű ajánló motorokban (a legtöbb esetben az e-kereskedelemben), a törzsadat-kezelésben (MDM), a hálózati és informatikai műveletekben, az identitás- és hozzáférés-kezelésben (IAM) stb.

A HBase és a Cassandra a két híres oszloporientált adatbázis. Tehát most magasabb szinten beszélve hasonlítsuk össze és értsük meg a HBase és a Cassandra építészeti és munkásbeli különbségeit.

HBase bemutató: HBase VS Cassandra

  • A HBase a BigTable (Google) mintájára készült, míg a Cassandra a DynamoDB-re (Amazon) épült, amelyet eredetileg a Facebook fejlesztett ki.
  • A HBase kihasználja a Hadoop infrastruktúrát (HDFS, ZooKeeper), míg a Cassandra külön fejlődött, de a Hadoopot és a Cassandrát az igényeinek megfelelően kombinálhatja.
  • A HBase számos összetevővel rendelkezik, amelyek egymással kommunikálnak, mint például a HBase HMaster, ZooKeeper, NameNode, Region Severs. Míg a Cassandra egyetlen csomóponttípus, amelyben minden csomópont egyenlő és minden funkciót ellát. Bármely csomópont lehet a koordinátor, amely eltávolítja az egyetlen hibapontot.
  • A HBase optimalizált olvasásra és támogatja az egyszeri írásokat, ami szigorú következetességhez vezet. A HBase támogatja a tartományalapú vizsgálatokat, ami gyorsabbá teszi a szkennelési folyamatot. Míg Cassandra támogatja az egysoros olvasást, ami megőrzi az esetleges konzisztenciát.
  • A Cassandra nem támogatja a tartományon alapuló soros vizsgálatokat, ami lassítja a beolvasási folyamatot a HBase-hez képest.
  • A HBase támogatja az elrendelt particionálást, amelyben egy oszlopcsalád sorait tárolják RowKey-sorrendben, míg Casandrában az elrendelt particionálás kihívást jelent. A RowKey particionálás miatt a beolvasási folyamat gyorsabb a HBase-ben, mint a Cassandra.
  • A HBase nem támogatja az olvasási terheléselosztást, egy Region Server kiszolgálja az olvasási kérelmet, és a replikákat csak hiba esetén használják. Míg a Cassandra támogatja az olvasási terhelés kiegyensúlyozását, és ugyanazokat az adatokat különböző csomópontokról tudja olvasni. Ez veszélyeztetheti a következetességet.
  • A CAP (konzisztencia, elérhetőség és partíció-tolerancia) tételében a HBase fenntartja a konzisztenciát és a rendelkezésre állást, míg a Cassandra az elérhetőségre és a partíció-toleranciára összpontosít.


Vessünk egy mély merülést, és ismerjük meg az Apache HBase funkcióit, amelyek olyan népszerűvé teszik.

Apache HBase oktatóanyag: A HBase jellemzői

  • Atomi olvasás és írás: Soros szinten a HBase atomi olvasást és írást biztosít. Ez megmagyarázható, mivel egy olvasási vagy írási folyamat során az összes többi folyamat megakadályozza az olvasási vagy írási műveletek végrehajtását.
  • Következetes olvasás és írás: A HBase következetes olvasást és írást biztosít a fenti szolgáltatás miatt.
  • Lineáris és moduláris méretezhetőség: Mivel az adatkészletek HDFS-en vannak elosztva, így lineárisan skálázhatók a különböző csomópontok között, valamint modulárisan is skálázhatók, mivel különböző csomópontokra oszlanak.
  • Az asztalok automatikus és konfigurálható szilánkosítása: A HBase táblák el vannak osztva fürtökön, és ezek a fürtök elosztva régiók között. Ezek a régiók és klaszterek szétválnak, és az adatok növekedésével újra eloszlanak.
  • Könnyen használható Java API az ügyféleléréshez: Könnyen használható Java API-t biztosít az automatizált hozzáféréshez.
  • Takarékosság átjáró és REST-teljes webszolgáltatások: Támogatja a Thrift és a REST API-t a nem Java kezelőfelületekhez is.
  • A gyorsítótár és a Bloom szűrők blokkolása: A HBase támogatja a blokk gyorsítótárat és a Bloom szűrőket a nagy mennyiségű lekérdezés optimalizálásához.
  • Automatikus hibatámogatás: A HDFS-sel ellátott HBase biztosítja a fürtökön keresztül a WAL-t (Write Ahead Log), amely automatikus hibát támogat.
  • Rendezett soros kulcsok: Mivel a keresés sorok tartományán történik, a HBase lexikográfiai sorrendben tárolja a soros kulcsokat. Ezekkel a rendezett soros kulcsokkal és időbélyegzővel optimalizált kérést készíthetünk.

Most haladva ebben a HBase oktatóanyagban, hadd mondjam el, melyek azok a felhasználási esetek és forgatókönyvek, ahol a HBase használható, majd összehasonlítom a HDFS-t és a HBase-t.

Felhívom a figyelmét azokra a forgatókönyvekre, amelyekben a HBase a legalkalmasabb.

HBase bemutató: Hol használhatjuk a HBase-t?

  • Olyan HBase-t kell használnunk, ahol nagy adathalmazok vannak (milliók vagy milliárdok vagy sorok és oszlopok), és gyors, véletlenszerű és valós idejű, olvasási és írási hozzáférést igényelünk az adatok fölött.
  • Az adatkészletek különböző klaszterek között vannak elosztva, és nagy skálázhatóságra van szükségünk az adatok kezeléséhez.
  • Az adatokat különféle adatforrásokból gyűjtik össze, és félig strukturált vagy strukturálatlan adatok, vagy az összes kombinációja. A HBase segítségével könnyen kezelhető volt.
  • Oszloporientált adatokat szeretne tárolni.
  • Számos változata van az adathalmazoknak, és mindegyiket el kell tárolnia.

Mielőtt a Facebook Messenger esettanulmányához térnék,hadd mondjam el, mi a különbség a HBase és a HDFS között.

HBase oktatóanyag: HBase VS HDFS

A HDFS egy Java alapú elosztott fájlrendszer, amely lehetővé teszi, hogy nagy adatokat tároljon egy Hadoop-fürt több csomópontján. Tehát a HDFS egy mögöttes tárolási rendszer az adatok elosztott környezetben történő tárolásához. A HDFS egy fájlrendszer, míg a HBase egy adatbázis (hasonló az NTFS-hez és a MySQL-hez).

Mivel a HDFS és a HBase bármilyen adatot (azaz strukturált, félig strukturált és strukturálatlan) elosztott környezetben tárol, így megnézhetjük a HDFS fájlrendszer és a NoSQL adatbázis HBase közötti különbségeket.

  • A HBase alacsony késleltetésű hozzáférést biztosít kis mennyiségű adathoz nagy adathalmazokon belül, míg a HDFS nagy késleltetésű műveleteket biztosít.
  • A HBase támogatja a véletlenszerű olvasást és írást, míg a HDFS a WORM-ot (egyszeri írás egyszeri olvasása sokszor vagy többször).
  • A HDFS-hez alapvetően vagy elsősorban a MapReduce jobok, míg a HBase-hez shell-parancsok, Java API, REST, Avro vagy Thrift API-k férnek hozzá.

A HDFS nagy adathalmazokat tárol elosztott környezetben, és kihasználja az adatok kötegelt feldolgozását. Például. ez segít egy e-kereskedelmi webhelynek abban, hogy az ügyfelek adatainak millióit elosztott környezetben tárolja, amely hosszú időn keresztül (lehet, hogy 4-5 év vagy annál hosszabb) nőtt. Ezután kihasználja a kötegelt feldolgozást ezen adatok fölött, és elemzi az ügyfelek viselkedését, mintázatát, követelményeit. Ezután a cég megtudhatta, hogy milyen terméktípus, vevői vásárlás mely hónapokban történik. Segít az archivált adatok tárolásában és a kötegelt feldolgozás végrehajtásában.

Míg a HBase oszloporientált módon tárolja az adatokat, ahol minden oszlopot együtt tárolnak, így az olvasás gyorsabbá válik, a valós idejű feldolgozást kihasználva. Például. hasonló e-kereskedelmi környezetben több millió termékadatot tárol. Tehát, ha több millió termék között keresel egy terméket, az optimalizálja a kérés és a keresés folyamatát, így azonnal (vagy akár valós időben is elmondhatja) az eredményt. A részletes HBase építészeti magyarázat , A következő blogomban foglalkozom.

Mint tudjuk, a HBase terjesztése a HDFS-en keresztül történik, így mindkettő kombinációja nagyszerű lehetőséget kínál arra, hogy mindkettő előnyeit testre szabott megoldásban felhasználhassuk, amint ezt az alábbi Facebook messenger esettanulmányban láthatjuk.

HBase oktatóanyag: Facebook Messenger esettanulmány

Facebook Messaging Platform 2010 novemberében az Apache Cassandráról a HBase-re váltott.

A Facebook Messenger valós idejű beszélgetéssé egyesíti az üzeneteket, az e-mailt, a csevegést és az SMS-eket. A Facebook skálázható és robusztus infrastruktúrát próbált kiépíteni ezeknek a szolgáltatásoknak a kezelésére.

Abban az időben az üzenetinfrastruktúra több mint 350 millió felhasználót kezelt, havonta több mint 15 milliárd személyes üzenetet küldve. A csevegőszolgáltatás több mint 300 millió felhasználót támogat, akik havonta több mint 120 milliárd üzenetet küldenek.

A használat figyelemmel kísérésével kiderült, hogy két általános adatminta alakult ki:

legjobb szoftver a java programozáshoz
  • Rövid időbeli adatok halmaza, amely általában ingatag
  • Egyre növekvő adatkészlet, amelyhez ritkán férnek hozzá

A Facebook tárolási megoldást akart találni erre a két használati mintára, és vizsgálódni kezdtek a meglévő Messages infrastruktúra pótlása érdekében.

Korábban 2008-ban nyílt forráskódú adatbázist, azaz a Cassandrát használták, amely egy esetleges konzisztencia kulcsérték-tároló, amely már a gyártásban volt, az Inbox Search forgalmát kiszolgálva. Csapataik nagy ismeretekkel rendelkeztek a MySQL adatbázis használatáról és kezeléséről, így bármelyik technológia váltása komoly gondot jelentett számukra.

Néhány hétig különféle keretek tesztelésével töltötték a MySQL, az Apache Cassandra, az Apache HBase és más rendszerek klasztereinek értékelését. Végül kiválasztották a HBase-t.

Mivel a MySQL nem tudta hatékonyan kezelni a nagy adathalmazokat, mivel az indexek és az adathalmazok nagyra nőttek, a teljesítmény szenvedett. Megállapították, hogy Cassandra nem képes kezelni a nehéz mintákat az új Messages infrastruktúra összeegyeztetése érdekében.

A fő problémák a következők voltak:

  • A folyamatosan növekvő adatok nagy csoportjainak tárolása a különböző Facebook-szolgáltatásokból.
  • Szüksége van egy adatbázisra, amely kihasználhatja a magas szintű feldolgozást.
  • Nagy teljesítmény szükséges a kérések millióinak kiszolgálására.
  • A tárolás és a teljesítmény konzisztenciájának fenntartása.

Ábra: A Facebook Messenger kihívásai

Mindezen problémákra a Facebook talált megoldást, azaz a HBase-t. A Facebook a HBase-t a Facebook Messenger, chat, e-mail stb.

A HBase nagyon jó skálázhatósággal és teljesítménnyel rendelkezik ehhez a munkaterheléshez, a Cassandra-nál egyszerűbb konzisztencia modellel. Míg a HBase-t találták a legmegfelelőbbnek olyan követelményeik szempontjából, mint például az automatikus terheléselosztás és a feladatátvétel, a tömörítés támogatása, szerverenként több szilánk stb.

A HDFS, amely a HBase által használt alap fájlrendszer, számos szükséges funkciót is biztosított számukra, például végpontok közötti ellenőrző összegeket, replikációt és automatikus terhelés-kiegyensúlyozást.

Ábra: A HBase a Facebook Messenger megoldásaként

Amikor elfogadták a HBase-t, arra is összpontosítottak, hogy az eredményeket visszaküldjék magának a HBase-nek, és szorosan együttműködni kezdtek az Apache közösséggel.

Mivel az üzenetek különböző forrásokból, például SMS-ekből, csevegésekből és e-mailekből fogadnak el adatokat, egy alkalmazáskiszolgálót írtak, hogy kezelje a felhasználó üzenetének minden döntéshozatalát. Összekapcsol számos más szolgáltatással. A mellékleteket egy Haystack tárolja (amely a HBase-en működik). Felhasználói felfedező szolgáltatást is írtak az Apache ZooKeeper tetején, amely más infrastrukturális szolgáltatásokkal beszélget baráti kapcsolatok, e-mail fiókok igazolása, kézbesítési és adatvédelmi döntések céljából.

A Facebook csapata sok időt töltött annak megerősítésével, hogy ezek a szolgáltatások mindegyike robusztus, megbízható és jó teljesítményt nyújt a valós idejű üzenetkezelő rendszerek kezeléséhez.

Remélem, hogy ez a HBase bemutató blog informatív és tetszett. Ebben a blogban megismerhette a HBase alapjait és jellemzőit.A következő blogomban , Elmagyarázom a a HBase architektúrája és a HBase működése, amely népszerűvé teszi a gyors és véletlenszerű olvasás / írás számára.

Most, hogy megértette a HBase alapjait, nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Az Edureka Big Data Hadoop tanúsító tanfolyam segít a tanulóknak a HDFS, a fonal, a MapReduce, a Pig, a Hive, a HBase, az Oozie, a Flume és a Sqoop szakértőivé válni, valós idejű felhasználási esetek felhasználásával a kiskereskedelem, a szociális média, a repülés, az idegenforgalom és a pénzügy területén.

Van egy kérdésünk? Kérjük, említse meg a megjegyzések részben, és mi kapcsolatba lépünk Önnel.