Optymalizowanie usługi Apache HBase za pomocą systemu Apache Ambari w usłudze Azure HDInsight

Apache Ambari to interfejs internetowy do zarządzania klastrami usługi HDInsight i monitorowania ich. Aby zapoznać się z wprowadzeniem do internetowego interfejsu użytkownika systemu Ambari, zobacz Manage HDInsight clusters by using the Apache Ambari Web UI (Zarządzanie klastrami usługi HDInsight przy użyciu internetowego interfejsu użytkownika systemu Apache Ambari).

Konfiguracja bazy danych Apache HBase jest modyfikowana na karcie Konfiguracje bazy danych HBase. W poniższych sekcjach opisano niektóre ważne ustawienia konfiguracji wpływające na wydajność bazy danych HBase.

Ustawianie HBASE_HEAPSIZE

Uwaga

Ten artykuł zawiera odwołania do terminu master , termin, którego firma Microsoft już nie używa. Po usunięciu terminu z oprogramowania usuniemy go z tego artykułu.

Rozmiar sterty HBase określa maksymalną ilość sterty, która ma być używana w megabajtach według regionów i serwerów głównych . Wartość domyślna to 1000 MB. Ta wartość powinna zostać dostrojona dla obciążenia klastra.

  1. Aby zmodyfikować, przejdź do okienka Advanced HBase-env na karcie Konfiguracje bazy danych HBase, a następnie znajdź HBASE_HEAPSIZE ustawienie.

  2. Zmień wartość domyślną na 5000 MB.

    `Apache Ambari HBase memory heapsize`.

Optymalizowanie obciążeń z dużym obciążeniem odczytu

Następujące konfiguracje są ważne, aby zwiększyć wydajność obciążeń z dużym obciążeniem odczytu.

Blokuj rozmiar pamięci podręcznej

Pamięć podręczna bloków jest pamięcią podręczną odczytu. Parametr hfile.block.cache.size kontroluje rozmiar pamięci podręcznej bloku. Wartość domyślna to 0,4, czyli 40% całkowitej pamięci serwera regionu. Większy rozmiar pamięci podręcznej bloku, szybsze będą losowe operacje odczytu.

  1. Aby zmodyfikować ten parametr, przejdź do karty Ustawienia na karcie Konfiguracje bazy danych HBase, a następnie znajdź % regionServer przydzielone do buforów odczytu.

    Apache HBase memory block cache size.

  2. Aby zmienić wartość, wybierz ikonę Edytuj .

Rozmiar magazynu Memstore

Wszystkie edycje są przechowywane w buforze pamięci nazywanym magazynem Memstore. Ten bufor zwiększa łączną ilość danych, które można zapisywać na dysku w ramach jednej operacji. Przyspiesza również dostęp do ostatnich edycji. Rozmiar magazynu Memstore definiuje następujące dwa parametry:

  • hbase.regionserver.global.memstore.UpperLimit: definiuje maksymalny procent serwera regionów, z którego może korzystać połączony magazyn Memstore.

  • hbase.regionserver.global.memstore.LowerLimit: definiuje minimalny procent serwera regionów, z którego może korzystać połączony magazyn Memstore.

Aby zoptymalizować losowe operacje odczytu, można zmniejszyć górne i dolne limity magazynu Memstore.

Liczba wierszy pobranych podczas skanowania z dysku

Ustawienie hbase.client.scanner.caching definiuje liczbę wierszy odczytanych z dysku, gdy next metoda jest wywoływana na skanerze. Wartość domyślna to 100. Im większa liczba, tym mniejsza liczba zdalnych wywołań wykonanych z klienta do serwera regionu, co powoduje szybsze skanowanie. To ustawienie zwiększa jednak wykorzystanie pamięci na kliencie.

Apache HBase number of rows fetched.

Ważne

Nie należy ustawiać wartości tak, aby czas między wywołaniem następnej metody na skanerze był większy niż limit czasu skanera. Czas trwania limitu czasu skanera jest definiowany hbase.regionserver.lease.period przez właściwość .

Optymalizowanie obciążeń z dużą liczbą operacji zapisu

Następujące konfiguracje są ważne, aby zwiększyć wydajność obciążeń z dużą liczbą operacji zapisu.

Maksymalny rozmiar pliku regionu

Baza HBase przechowuje dane w wewnętrznym formacie pliku o nazwie HFile. hbase.hregion.max.filesize Właściwość definiuje rozmiar pojedynczego HFile regionu. Region jest podzielony na dwa regiony, jeśli suma wszystkich HFiles w regionie jest większa niż to ustawienie.

`Apache HBase HRegion max filesize`.

Większy rozmiar pliku regionu, tym mniejsza liczba podziałów. Rozmiar pliku można zwiększyć, aby określić wartość, która skutkuje maksymalną wydajnością zapisu.

Unikaj blokowania aktualizacji

  • Właściwość hbase.hregion.memstore.flush.size definiuje rozmiar, w którym magazyn Memstore jest opróżniany na dysk. Domyślny rozmiar to 128 MB.

  • Element hbase.hregion.memstore.block.multiplier definiuje mnożnik bloku regionu HBase. Wartość domyślna to 4. Maksymalna dozwolona wartość to 8.

  • Baza HBase blokuje aktualizacje, jeśli magazyn Memstore to (hbase.hregion.memstore.flush.size * hbase.hregion.memstore.block.multiplier) bajty.

    W przypadku wartości domyślnych rozmiaru opróżniania i mnożnika bloku aktualizacje są blokowane, gdy Memstore ma rozmiar 128 * 4 = 512 MB. Aby zmniejszyć liczbę blokowania aktualizacji, zwiększ wartość hbase.hregion.memstore.block.multiplier.

Apache HBase Region Block Multiplier.

Definiowanie rozmiaru magazynu Memstore

Parametry hbase.regionserver.global.memstore.upperLimit i hbase.regionserver.global.memstore.lowerLimit definiują rozmiar magazynu Memstore. Ustawienie tych wartości równą sobie zmniejsza przerwy podczas zapisu (również powoduje częstsze opróżnianie) i powoduje zwiększenie wydajności zapisu.

Ustawianie lokalnego buforu alokacji magazynu Memstore

Właściwość hbase.hregion.memstore.mslab.enabled definiuje użycie buforu alokacji lokalnej Memstore. Po włączeniu (true) to ustawienie uniemożliwia fragmentację stert podczas ciężkiej operacji zapisu. Wartość domyślna to true.

hbase.hregion.memstore.mslab.enabled.

Następne kroki