Video: Apache OODT: From the beginning to big data management 2024
Ett stort antal NoSQL-databaser är en otrevlig sak att hantera. Apache Zookeeper till räddningen! Att hålla reda på vilka noder som finns i klustret, vilka data som hanteras och se till att nya mästare väljs när en mästare misslyckas är inte enkla uppgifter.
Koordinering av stora distribuerade system är därför mycket svårt. Både Hadoop och distribuerade NoSQL-databaser behöver ett sätt att hantera konfigurationen av ett helt cluster. Denna process måste också vara mycket tillgänglig så att det inte är en enda punkt av fel i det övergripande systemet.
Här kommer Apache Zookeeper. Zookeeper tillhandahåller en distribuerad, transaktionellt konsekvent koordinationsservice.
Flera andra produkter använder Zookeeper för grupphantering:
-
Apache Hadoop
-
Solr Cloud
-
Neo4j
-
Accumulo
-
HBase
-
Rackspace
-
Zynga
-
Yahoo! (för flera av sina tjänster)
Zookeeper tillhandahåller en hierarkisk minnesstruktur i minnet som liknar ett datafilsystem. Denna struktur hanteras av den nuvarande Zookeeper-mästaren och replikeras bland de andra noderna i klustret. Ett Zookeeper-kluster kallas en Zookeeper e nsemble.
Endast mästaren hanterar uppdateringar (skriver) till lagring. Dessa ändringar kontrolleras till disken för att göra dem hållbara och sedan replikeras till andra Zookeeper-instanser i ensemblet.
Dessa tjänster lagrar sina klusterkonfigurationsdata i Zookeeper. Några av dem lagrar också nyckelområdena för shards i deras databas. Detta gör det möjligt för kunder som använder en NoSQL-databas som använder Zookeeper att kommunicera med någon Zookeeper-server i ensemblet. På så sätt kan klienter upptäcka vilka NoSQL-servrar som håller de data de är intresserade av.
Upptäck vilken nod som lagrar vilket nyckelområde som minimerar belastningen på NoSQL-servrarna, eftersom de inte behöver vidarebefordra förfrågningar om data från en NoSQL-nod till noden som faktiskt innehåller data.
Du kan också använda Zookeepers datalagring för ephemeral storage (lagring som inte kommer att vara längre än en omstart av tjänsten), vilket är användbart för att lagra session eller annan runtime data.
Zookeeper-servrar använder denna efemervärde för att bestämma vem som tar över om en mästare misslyckas. Varje server skapar en numrerad efemabel znode (lagringsfil) i nyckelutrymmet. Om Zookeeper-mästaren (ledaren) har ett maskinvarufel, blir ägaren av nästa znode i sekvensen mästaren. Detta är en elegant lösning och undviker "herd" -effekten där alla servrar kommunicerar frantiskt med varandra i några sekunder för att välja en ny mästare.
Zookeeper är en bra Java-lösning på problemen i samband med samordnad systemhantering och hög tillgänglighet. Du kan använda den för att genomföra mycket tillgängliga tjänster, inklusive meddelandetjänster. Så om du behöver skapa en ny distribuerad tjänst, överväga att använda Zookeeper.