Beskriva Apache HBase

Slutförd

Apache HBase är en NoSQL-databas med öppen källkod som bygger på Apache Hadoop. HBase ger slumpmässig åtkomst och stark konsekvens för stora mängder ostrukturerade och halvstrukturerade data i en schemalös databas som ordnas efter kolumnfamiljer. HDInsight 4.0 HBase-kluster levereras med Apache HBase 2.1.6 och Apache Phoenix 5.

Från ett användarperspektiv liknar HBase en databas. Data lagras i raderna och kolumnerna i en tabell, och data i en rad grupperas efter kolumnfamilj. HBase är en schemalös databas i den mening att varken kolumner eller den typ av data som lagras i dem måste definieras innan du använder dem. Den öppna källkoden skalas linjärt för att hantera petabyte med data på tusentals noder.

HBase har följande funktioner som gör den unik

  • Konsekvent läsning och skrivningar

  • Åtgärder med låg svarstid

  • Automatisk horisontell partitionering

  • Automatisk regionserverredundans

  • Hadoop/HDFS/MapReduce-integrering

  • Java-klient-API

  • Stöder Thrift och REST för klientdelar som inte är java

  • Blockera cache- och Bloom-filter

Azure HDInsight HBase med Apache Phoenix medför följande extra fördelar

  • SQL- och inga SQL-gränssnitt

  • Flexibel kapacitetsplanering

  • Global distribution och replikering med Azure-nätverk

  • Separation av beräkning och lagring

  • Nära integrerad med HDInsight Enterprise-säkerhetsfunktioner

  • HDInsight HBase-accelererade skrivningar för läsningar och skrivningar med ultralåg svarstid

  • Apache Phoenix för realtids-SQL som att fråga

Med Azure HDInsight med HBase kan du köra NoSQL-databaser i massiv skala. Som en Dataingenjör för en Contoso måste du kunna köra benchmark-tester för att förstå prestanda och skala för HDInsight HBase innan du använder plattformen för verksamhetskritiska produktionsscenarier.

HBase på HDInsight körs med separation av beräkning och lagring. HDInsight HBase-kluster är konfigurerade för att lagra data direkt i Azure Storage, vilket ger låg svarstid och ökad elasticitet i prestanda- och kostnadsval. Den här egenskapen gör det möjligt för kunder att skapa interaktiva webbplatser som fungerar med stora datamängder. Skapa tjänster som lagrar sensor- och telemetridata från miljontals slutpunkter och analysera dessa data med Hadoop-jobb. HBase och Hadoop är bra utgångspunkter för stordataprojekt i Azure. Tjänsterna kan göra det möjligt för realtidsprogram att fungera med stora datamängder. HDInsight HBase-implementeringar använder en skalbar arkitektur för HBase för att tillhandahålla automatisk horisontell partitionering av tabeller. Det ger också stark konsekvens för läsningar och skrivningar samt automatisk redundans. Prestanda utökas av cachelagring i minnet för läsning och snabb strömning för skrivning. HBase-kluster kan skapas i virtuella nätverk. Mer information finns i Create HDInsight clusters on Azure Virtual Network (Skapa HDInsight-kluster i Azure Virtual Network).

HBase-arkitektur

Som datatekniker måste du fastställa den lämpligaste typen av HDInsight-kluster som ska skapas för att skapa din lösning. Du använder HBase-kluster i HDInsight för en NoSQL-databas som skalar linjärt och uppnår enorma mängder dataflöde, ger läsningar med låg svarstid och obegränsad lagring till bråkdelen av kostnaden.

Följande är de viktigaste scenarierna för att använda HBase i HDInsight.

Nyckelvärdeslager

HBase används vanligtvis som ett nyckelvärdeslager och är lämpligt för att hantera meddelandesystem.

Sensordata

HBase är användbart för att samla in data som samlas in stegvis från olika källor, vilket inkluderar social analys, tidsserier, hålla interaktiva instrumentpaneler uppdaterade med trender och räknare och hantering av granskningsloggsystem.

Realtidsfråga

Apache Phoenix är en SQL-frågemotor för Apache HBase. Den används som en JDBC-drivrutin och gör det möjligt att köra frågor mot och hantera HBase-tabeller med hjälp av SQL.

HBase som en plattform

Program kan köras ovanpå HBase genom att använda det som ett datalager. Några exempel är Phoenix, OpenTSDB, Kiji och Titan. Program kan också integreras med HBase. Exempel är Apache Hive, Apache Pig, Solr, Apache Flume, Apache Impala, Apache Spark, Ganglia och Apache Drill.

I HDInsight kan HBase användas som fristående program eller distribueras tillsammans med andra stordataanalysprogram som Spark, Hadoop, Hive eller Kafka.

HBase i kontexten för en Lambda-arkitektur

HBase-datamodellen lagrar halvstrukturerade data med olika datatyper, varierande kolumnstorlek och fältstorlek. Layouten för HBase-datamodellen underlättar datapartitionering och distribution i klustret. HBase-datamodellen består av flera logiska komponenter– radnycklar, kolumnfamilj, tabellnamn, tidsstämpel osv.

En radnyckel används för att unikt identifiera raderna i HBase-tabeller. I HDInsight kan du antingen skriva data till HBase direkt med hjälp av flera tillgängliga API:er som HBase REST, HBase RPC, Phoenix Query Server, HBase bulk load eller använda integreringen med flera stordataramverk som Apache Spark, Hive osv.

Du kan använda funktionen för HBase-accelererade skrivningar för att aktivera högt skrivdataflöde. Mer information om HBase-arkitektur och metodtips finns i HBase Book.