Apache HBase optimaliseren met Apache Ambari in Azure HDInsight

Apache Ambari is een webinterface voor het beheren en bewaken van HDInsight-clusters. Zie HDInsight-clusters beheren met behulp van de Apache Ambari-webinterface voor een inleiding tot de Ambari-webinterface.

De Configuratie van Apache HBase wordt gewijzigd op het tabblad HBase-configuraties . In de volgende secties worden enkele van de belangrijke configuratie-instellingen beschreven die van invloed zijn op de prestaties van HBase.

HBASE_HEAPSIZE instellen

Notitie

Dit artikel bevat verwijzingen naar het termenmodel, een term die microsoft niet meer gebruikt. Zodra de term uit de software wordt verwijderd, verwijderen we deze uit dit artikel.

De heapgrootte van HBase geeft de maximale hoeveelheid heap op die moet worden gebruikt in megabytes per regio en hoofdservers . De standaardwaarde is 1000 MB. Deze waarde moet worden afgestemd op de clusterworkload.

  1. Als u dit wilt wijzigen, gaat u naar het deelvenster Advanced HBase-env op het tabblad HBase-configuraties en zoekt u de HBASE_HEAPSIZE instelling.

  2. Wijzig de standaardwaarde in 5000 MB.

    `Apache Ambari HBase memory heapsize`.

Leesintensieve workloads optimaliseren

De volgende configuraties zijn belangrijk om de prestaties van leesintensieve workloads te verbeteren.

Cachegrootte blokkeren

De blokcache is de leescache. De hfile.block.cache.size parameter bepaalt de blokcachegrootte. De standaardwaarde is 0,4, wat 40 procent van het totale geheugen van de regioserver is. Groter de blokcachegrootte, sneller zijn willekeurige leesbewerkingen.

  1. Als u deze parameter wilt wijzigen, gaat u naar het tabblad Instellingen op het tabblad HBase-configuratiesen zoekt u vervolgens % van RegionServer toegewezen aan leesbuffers.

    Apache HBase memory block cache size.

  2. Als u de waarde wilt wijzigen, selecteert u het pictogram Bewerken .

Grootte van memstore

Alle bewerkingen worden opgeslagen in de geheugenbuffer, een Memstore genoemd. Deze buffer verhoogt de totale hoeveelheid gegevens die in één bewerking naar schijf kan worden geschreven. Het versnelt ook de toegang tot de recente bewerkingen. De grootte van de Memstore definieert de volgende twee parameters:

  • hbase.regionserver.global.memstore.UpperLimit: Definieert het maximumpercentage van de regioserver die gecombineerd door Memstore kan worden gebruikt.

  • hbase.regionserver.global.memstore.LowerLimit: Hiermee definieert u het minimumpercentage van de regioserver die gecombineerd door Memstore kan worden gebruikt.

Als u wilt optimaliseren voor willekeurige leesbewerkingen, kunt u de boven- en onderlimieten van Memstore verminderen.

Aantal rijen dat is opgehaald bij het scannen vanaf schijf

De hbase.client.scanner.caching instelling definieert het aantal rijen dat van de schijf wordt gelezen wanneer de next methode wordt aangeroepen op een scanner. De standaardwaarde is 100. Hoe hoger het aantal, hoe minder externe aanroepen van de client naar de regioserver, wat resulteert in snellere scans. Deze instelling verhoogt echter de geheugendruk op de client.

Apache HBase number of rows fetched.

Belangrijk

Stel de waarde niet zodanig in dat de tijd tussen het aanroepen van de volgende methode op een scanner groter is dan de time-out van de scanner. De time-outduur van de scanner wordt gedefinieerd door de hbase.regionserver.lease.period eigenschap.

Schrijfintensieve workloads optimaliseren

De volgende configuraties zijn belangrijk om de prestaties van schrijfintensieve workloads te verbeteren.

Maximale grootte van regiobestand

HBase slaat gegevens op in een interne bestandsindeling, genaamd HFile. De eigenschap hbase.hregion.max.filesize definieert de grootte van één HFile voor een regio. Een regio wordt gesplitst in twee regio's als de som van alle HFiles regio's groter is dan deze instelling.

`Apache HBase HRegion max filesize`.

Hoe groter de grootte van het regiobestand, hoe kleiner het aantal splitsingen. U kunt de bestandsgrootte vergroten om een waarde te bepalen die resulteert in de maximale schrijfprestaties.

Updateblokkering voorkomen

  • De eigenschap hbase.hregion.memstore.flush.size definieert de grootte waarop Memstore wordt leeggemaakt op schijf. De standaardgrootte is 128 MB.

  • Hiermee hbase.hregion.memstore.block.multiplier definieert u de vermenigvuldiger van het HBase-regioblok. De standaardwaarde is 4. Het toegestane maximum is 8.

  • HBase blokkeert updates als de Memstore (hbase.hregion.memstore.flush.size * hbase.hregion.memstore.block.multiplier) bytes is.

    Met de standaardwaarden van flush size and block multiplier worden updates geblokkeerd wanneer Memstore 128 * 4 = 512 MB groot is. Als u het aantal updateblokkeringen wilt verminderen, verhoogt u de waarde van hbase.hregion.memstore.block.multiplier.

Apache HBase Region Block Multiplier.

Grootte van Memstore definiëren

De hbase.regionserver.global.memstore.upperLimit en hbase.regionserver.global.memstore.lowerLimit parameters definiëren de grootte van Memstore. Als u deze waarden instelt die gelijk zijn aan elkaar, vermindert u pauzes tijdens schrijfbewerkingen (waardoor ook vaker wordt leeggemaakt) en leidt dit tot betere schrijfprestaties.

Lokale toewijzingsbuffer voor Memstore instellen

De eigenschap hbase.hregion.memstore.mslab.enabled definieert het lokale toewijzingsbuffergebruik van Memstore. Indien ingeschakeld (waar), voorkomt deze instelling heapfragmentatie tijdens zware schrijfbewerkingen. De standaardwaarde is waar.

hbase.hregion.memstore.mslab.enabled.

Volgende stappen