Hem Personliga finanser Zookeeper och HBase Reliability - dummies

Zookeeper och HBase Reliability - dummies

Video: Big Data analysis Hadoop with Mapreduce, HIVE, PIG , Zookeeper and Spark class 9 2024

Video: Big Data analysis Hadoop with Mapreduce, HIVE, PIG , Zookeeper and Spark class 9 2024
Anonim

Zookeeper är ett distribuerat kluster av servrar som gemensamt tillhandahåller tillförlitliga koordinations- och synkroniseringstjänster för grupperade applikationer. Visst kan namnet "Zookeeper" först tyckas vara ett udda val, men när du förstår vad det gör för ett HBase-kluster kan du se logiken bakom den. När du bygger och felsöker distribuerade applikationer "Det är en zoo där ute", så du borde lägga Zookeeper på ditt lag.

HBase-klyftor kan vara enorma och samordna operationerna hos MasterServers, RegionServers och kunder kan vara en skrämmande uppgift, men det är där Zookeeper kommer in i bilden. Som i HBase kör Zookeeper-kluster typiskt på billiga x86-servrar.

Varje enskild x86-server kör en enda Zookeeper-mjukvaruprocess (nedan kallad en Zookeeper-server), med en Zookeeper-server vald av ensemblet som ledare och resten av servrarna är följare. Zookeeper-ensembler styrs av principen om majoritetsquorum.

Konfigurationer med en Zookeeper-server stöds för test- och utvecklingsändamål, men om du vill ha ett tillförlitligt kluster som kan tolerera serverfel måste du distribuera minst tre Zookeeper-servrar för att få ett majoritetsquorum.

Så, hur många Zookeeper-servrar behöver du? Fem är det minsta rekommenderade för produktionsanvändning, men du vill verkligen inte gå med det minsta minimumet. När du bestämmer dig för att planera ditt Zookeeper-ensemble, följ den här enkla formeln: 2F + 1 = N där F är antalet misslyckanden som du kan acceptera i din Zookeeper-grupp och N är det totala antalet Zookeeper-servrar du måste distribuera.

Fem rekommenderas eftersom en server kan stängas av för underhåll, men Zookeeper-klustret kan fortfarande tolerera ett serverfel.

Zookeeper tillhandahåller koordinering och synkronisering med vad det kallar znodes , som presenteras som ett katalogtree och liknar filvägsnamnen du skulle se i ett Unix-filsystem. Znodes gör lagra data men inte mycket att tala om - för närvarande mindre än 1 MB som standard.

Tanken här är att Zookeeper lagrar znodes i minnet och att dessa minnesbaserade znodes ger snabb klientåtkomst för samordning, status och andra viktiga funktioner som krävs av distribuerade applikationer som HBase. Zookeeper replikerar znodes över ensemblet, så om servrar misslyckas är znode-data fortfarande tillgänglig så länge som majoritetsquorum av servrar fortfarande är igång.

En annan viktig Zookeeper-koncept gäller hur znode läser (kontra skriv) hanteras. Enhver Zookeeper-server kan hantera läsningar från en klient, inklusive ledaren, men endast ledarefrågorna atom znode skriver - skriver att helt eller delvis misslyckas.

När en znode-skrivförfrågan anländer till ledarkoden skickar ledaren skrivförfrågan till följarknoderna och väntar sedan på att en majoritet av anhängare kommer att bekräfta znode write complete. Efter bekräftelsen utfärdar ledaren znode-skrivet och rapporterar sedan den framgångsrika slutförandestatusen till klienten.

Znodes ger några mycket kraftfulla garantier. När en Zookeeper-klient (t.ex. en HBase RegionServer) skriver eller läser en znode är operationen atom . Det lyckas helt eller helt och hållet misslyckas - det finns inga partiella läsningar eller skrivningar.

Ingen annan konkurrerande klient kan orsaka att läsnings- eller skrivoperationen misslyckas. Dessutom har en znode en åtkomstkontrolllistor (ACL) som är associerad med den för säkerhet, och den stöder versioner, tidsstämplar och meddelande till kunder när det ändras.

Zookeeper replikerar znodes över ensemblet, så om servrar misslyckas är znode-data fortfarande tillgänglig så länge som majoritetsquorum av servrar fortfarande är igång. Detta innebär att skrivningar till vilken znode som helst från någon Zookeeper-server måste sprida sig över ensemblet. Zookeeper-ledaren hanterar denna operation.

Denna znode write-metod kan leda till att efterföljare faller bakom ledaren under korta perioder. Zookeeper löser detta potentiella problem genom att tillhandahålla ett synkroniseringskommando. Kunder som inte kan tolerera denna tillfälliga brist på synkronisering inom Zookeeper-klustret kan besluta att utfärda ett synkroniseringskommando innan de läser znoder.

Zookeeper och HBase Reliability - dummies

Redaktörens val

Jewish Funeral Traditions - dummies

Jewish Funeral Traditions - dummies

Judiska begravningar sker vanligen i en synagoge, begravningshem eller på en kyrkogård. Med tradition är judiska begravningar enkla (symboliserar tron ​​att människor är alla lika i döden), men de varierar mycket och har ingen uppsättning liturgi. Att skicka blommor till ett begravnings- eller sorgshem är starkt avskräckt i judendomen. Inte bara kommer ...

Identifiera komplicerade grävande dummies

Identifiera komplicerade grävande dummies

Komplicerat roende är det tekniska namnet som sorgproffs ger till en sorgprocess som sitter fast vid något tillfälle , vilket gör det omöjligt för de förlorade att framgångsrikt starta eller avsluta sorgprocessen. Komplicerat sorg är ofta ett tecken på olösta problem i förhållandet mellan de förlorade och den avlidne som gör det ...

Redaktörens val

Hur man ställer in kartkontroller i Main_iPad. Storyboard i din iOS App - dummies

Hur man ställer in kartkontroller i Main_iPad. Storyboard i din iOS App - dummies

När du har en anpassad vy för MapController i din iOS-app, måste du berätta för iPad-storyboardet att du laddar in din anpassade vy i stället för en UIViewController. Följ dessa steg: Välj Projekt navigator genom att välja Main_iPad. storyboard och välj sedan View Controller i View Controller - Map Scene i dokumentutskriften. ...

Hur man roterar objekt i din iOS-app - dummies

Hur man roterar objekt i din iOS-app - dummies

Här hittar du hur man rotera en vy (i så fall vrid bilen runt) i din iOS-app. För att göra det uppdaterar du den roterande kodstuben du startade med och ersätter den med den fetstilta koden. - (void) rotera {CGAffineTransform transform = CGAffineTransformMakeRotation (M_PI); void (^ animation) () = ^ () {self. bil. transformera = transformera; ...

Hur man ställer in en WeatherController i Main_iPad. storyboard-fil för din iOS-app - dummies

Hur man ställer in en WeatherController i Main_iPad. storyboard-fil för din iOS-app - dummies

Bör du lägga till en ny anpassad vykontroll till din iOS-app innan du fortsätter till dessa steg. Du behöver fortfarande berätta för storyboardet att du vill att den ska ladda den nya anpassade vykontrollen istället för en UIViewController. Följ dessa steg:

Redaktörens val

Spara en grafisk stil i Adobe CS5 Illustrator - dummies

Spara en grafisk stil i Adobe CS5 Illustrator - dummies

Adobe Creative Suite 5 (Adobe CS5) Illustrator tillåter Du sparar en grafisk stil. En grafisk stil är en kombination av alla inställningar du väljer för ett visst filter eller en effekt i Utseendepanelen. Genom att spara informationen i en grafisk stil lagras du dessa attribut så att du snabbt och enkelt kan tillämpa ...

Välj som ett transformationsverktyg i Adobe CS5 Illustrator - dummies

Välj som ett transformationsverktyg i Adobe CS5 Illustrator - dummies

I Adobe Creative Suite 5 (Adobe CS5 ) Illustratör du kan använda markeringsverktyget för att skala och rotera ett valt objekt. Dra begränsningsboxens handtag för att ändra storlek på objektet, eller flytta dig utanför ett handtag och sedan, när markören ändras till en flippig pil (en böjd pil med pilhuvud i båda ändarna), dra till ...

Objekttransformation i Adobe CS5 Illustrator - dummies

Objekttransformation i Adobe CS5 Illustrator - dummies

Verktygen Rotate, Reflect, Scale och Shear i Adobe Creative Suite 5 (Adobe CS5) Illustrator använder alla samma grundläggande steg för att utföra transformationer. Här är fem sätt att transformera ett objekt: en för en godtycklig omvandling och fyra andra för exakta omvandlingar baserat på en numerisk mängd som du anger. Vilkårlig omvandlingsmetod Eftersom detta ...