Optimera Apache HBase med Apache Ambari i Azure HDInsight

Apache Ambari är ett webbgränssnitt för att hantera och övervaka HDInsight-kluster. En introduktion till Ambari-webbgränssnittet finns i Hantera HDInsight-kluster med apache Ambari-webbgränssnittet.

Apache HBase-konfigurationen ändras från fliken HBase-konfigurationer . I följande avsnitt beskrivs några av de viktiga konfigurationsinställningar som påverkar HBase-prestanda.

Ange HBASE_HEAPSIZE

Kommentar

Den här artikeln innehåller referenser till termen master, en term som Microsoft inte längre använder. När termen tas bort från programvaran tar vi bort den från den här artikeln.

HBase-heapstorleken anger den maximala mängden heap som ska användas i megabyte per region och huvudservrar . Standardvärdet är 1 000 MB. Det här värdet ska justeras för klusterarbetsbelastningen.

  1. Om du vill ändra går du till fönstret Avancerat HBase-env på fliken HBase-konfigurationer och letar sedan upp inställningenHBASE_HEAPSIZE.

  2. Ändra standardvärdet till 5 000 MB.

    `Apache Ambari HBase memory heapsize`.

Optimera läsintensiva arbetsbelastningar

Följande konfigurationer är viktiga för att förbättra prestandan för läsintensiva arbetsbelastningar.

Blockcachestorlek

Blockcachen är läscachen. Parametern hfile.block.cache.size styr blockcachestorleken. Standardvärdet är 0,4, vilket är 40 procent av det totala regionserverminnet. Större blockcachestorlek, snabbare blir slumpmässiga läsningar.

  1. Om du vill ändra den här parametern går du till fliken Inställningar på fliken HBase Configs och letar sedan upp % av RegionServer allokerad till läsbuffertar.

    Apache HBase memory block cache size.

  2. Om du vill ändra värdet väljer du ikonen Redigera .

Memstore-storlek

Alla redigeringar lagras i minnesbufferten, som kallas memstore. Den här bufferten ökar den totala mängden data som kan skrivas till disk i en enda åtgärd. Det påskyndar också åtkomsten till de senaste redigeringarna. Memstore-storleken definierar följande två parametrar:

  • hbase.regionserver.global.memstore.UpperLimit: Definierar den maximala procentandelen av den regionserver som Memstore kombinerat kan använda.

  • hbase.regionserver.global.memstore.LowerLimit: Definierar den lägsta procentandelen av den regionserver som Memstore kombinerat kan använda.

Om du vill optimera för slumpmässiga läsningar kan du minska de övre och nedre gränserna för Memstore.

Antal rader som hämtas vid genomsökning från disk

Inställningen hbase.client.scanner.caching definierar antalet rader som läse från disken next när metoden anropas på en skanner. Standardvärdet är 100. Ju högre nummer, desto färre fjärranrop från klienten till regionservern, vilket resulterar i snabbare genomsökningar. Den här inställningen ökar dock minnesbelastningen på klienten.

Apache HBase number of rows fetched.

Viktigt!

Ange inte värdet så att tiden mellan anropet av nästa metod på en skanner är större än tidsgränsen för skannern. Varaktigheten för skannerns tidsgräns definieras av hbase.regionserver.lease.period egenskapen .

Optimera skrivintensiva arbetsbelastningar

Följande konfigurationer är viktiga för att förbättra prestanda för skrivintensiva arbetsbelastningar.

Maximal regionfilstorlek

HBase lagrar data i ett internt filformat med namnet HFile. Egenskapen hbase.hregion.max.filesize definierar storleken på en enskild HFile för en region. En region delas upp i två regioner om summan av alla HFiles i en region är större än den här inställningen.

`Apache HBase HRegion max filesize`.

Ju större regionfilstorlek, desto mindre är antalet delningar. Du kan öka filstorleken för att fastställa ett värde som ger maximal skrivprestanda.

Undvik uppdateringsblockering

  • Egenskapen hbase.hregion.memstore.flush.size definierar storleken som Memstore töms på disk. Standardstorleken är 128 MB.

  • Definierar hbase.hregion.memstore.block.multiplier blockmultiplikatorn för HBase-regionen. Standardvärdet är 4. Det högsta tillåtna är 8.

  • HBase blockerar uppdateringar om Memstore är (hbase.hregion.memstore.flush.size * hbase.hregion.memstore.block.multiplier) byte.

    Med standardvärdena för tömningsstorlek och blockmultiplikator blockeras uppdateringar när Memstore är 128 * 4 = 512 MB i storlek. Om du vill minska antalet uppdateringsblockering ökar du värdet hbase.hregion.memstore.block.multiplierför .

Apache HBase Region Block Multiplier.

Definiera Memstore-storlek

Parametrarna hbase.regionserver.global.memstore.upperLimit och hbase.regionserver.global.memstore.lowerLimit definierar Memstore-storlek. Om du ställer in dessa värden lika med varandra minskar pauser under skrivningar (vilket också orsakar mer frekvent tömning) och resulterar i ökad skrivprestanda.

Ange lokal memstore-allokeringsbuffert

hbase.hregion.memstore.mslab.enabled Egenskapen definierar lokal allokeringsbuffertanvändning för Memstore. När det är aktiverat (sant) förhindrar den här inställningen heapfragmentering under tung skrivåtgärd. Standardvärdet är sant.

hbase.hregion.memstore.mslab.enabled.

Nästa steg