Video: Strimman 181009 Bo Persson Borde vi ha färre kommuner och regioner i Sverige 2024
Regionservers är en sak, men du måste också titta på hur enskilda regioner fungerar. I HBase är ett bord både spritt över ett antal RegionServers samt består av enskilda regioner. När tabeller delas upp blir splittringarna regioner. Regioner lagrar en rad nyckelparametrar, och varje RegionServer hanterar ett konfigurerbart antal regioner.
Men hur ser de enskilda regionerna ut? HBase är en kolumnfamiljorienterad datalager, så hur lagrar de enskilda regionerna nyckelvärdespar baserat på kolumnfamiljerna de tillhör? Följande bild börjar svara på dessa frågor och hjälper dig att smälta mer vital information om arkitekturen i HBase.
HBase är skrivet i Java - liksom den stora majoriteten av Hadoop-tekniken. Java är ett objektorienterat programmeringsspråk och en elegant teknik för distribuerad databehandling. Så, som du fortsätter att lära dig mer om HBase, kom ihåg att alla komponenter i arkitekturen i slutänden är Java-objekt.
Först och främst ger den föregående figuren en ganska bra uppfattning om vilka regionobjekt som faktiskt ser ut, i allmänhet. Det klargör också att regioner separerar data i kolumnfamiljer och lagrar data i HDFS med hjälp av HFile-objekt.
När kunder lägger nyckelparatpar i systemet bearbetas nycklarna så att data lagras baserat på den kolumnfamilj som paret tillhör. Som visas i figuren har varje kolumnfamiljaffärsobjekt en läscache som heter BlockCache och en skrivcache kallas MemStore. BlockCache hjälper till med slumpmässig läsning.
Data läses i block från HDFS och lagras i BlockCache. Efterföljande läser för datan - eller data som lagras i närheten - kommer att läsas från RAM istället för disk, vilket förbättrar övergripande prestanda. Skrivanslutningsloggen (WAL, för kort) säkerställer att din HBase-skrivning är tillförlitlig. Det finns en WAL per RegionServer.
Håll alltid Iron Law of Distributed Computing: Ett misslyckande är inte undantaget - det är normen, speciellt när man kluster hundratals eller till och med tusentals servrar. Google följde Iron Law i utformningen av BigTable och HBase följde efter.
När du skriver eller ändrar data i HBase, fortsätter data först till WAL, som lagras i HDFS, och sedan skrivs data till MemStore-cacheminnet. Vid konfigurerbara intervall skrivs nyckelvärdespar som lagras i MemStore till HFiles i HDFS och därefter raderas WAL-poster.
Om ett fel inträffar efter den ursprungliga WAL skriver men före den slutliga MemStore-skrivningen till disken, kan WAL spelas upp för att undvika dataförlust.
Tre HFile-objekt finns i en kolumnfamilj och två i den andra. Utformningen av HBase är att spola kolumnfamiljdata lagrad i MemStore till en HFile per spolning. Sedan kombineras HFiles vid konfigurerbara intervall till större HFiler. Denna strategi köper upp den kritiska komprimeringsoperationen i HBase.