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 Web UI finns i Hantera HDInsight-kluster med hjälp av Apache Ambari Web UI.

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

Anteckning

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 Advanced HBase-env på fliken HBase Configs och letar sedan upp inställningen HBASE_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. Dess storlek styrs av parametern hfile.block.cache.size . Standardvärdet är 0,4, vilket är 40 procent av det totala regionserverminnet. Ju större blockcachestorlek desto 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 .

Storlek på memstore

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 definieras av följande två parametrar:

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

  • hbase.regionserver.global.memstore.LowerLimit: Definierar den lägsta procentandelen av den regionserver som Memstore tillsammans 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 görs från klienten till regionservern, vilket resulterar i snabbare genomsökningar. Men den här inställningen ökar också 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 prestandan för skrivintensiva arbetsbelastningar.

Maximal filstorlek för region

HBase lagrar data i ett internt filformat som kallas HFile. hbase.hregion.max.filesize Egenskapen definierar storleken på en enda HFile för en region. En region är uppdelad 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

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

  • Blockmultiplikatorn för HBase-regionen definieras av hbase.hregion.memstore.block.multiplier. 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

Memstore-storleken definieras av parametrarna hbase.regionserver.global.memstore.upperLimit och hbase.regionserver.global.memstore.lowerLimit . 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 allokeringsbuffert för Memstore

Användning av lokal allokeringsbuffert för Memstore bestäms av egenskapen hbase.hregion.memstore.mslab.enabled. När det är aktiverat (sant) förhindrar den här inställningen heapfragmentering under tung skrivåtgärd. Standardvärdet är True.

hbase.hregion.memstore.mslab.enabled

Nästa steg