Udostępnij przez


Optymalizowanie bazy danych Apache HBase przy użyciu narzędzia 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.

Ustaw 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.

Optymalizacja zadań o dużym obciążeniu 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. Im większy rozmiar pamięci podręcznej bloku, tym szybsze będą losowe odczyty.

  1. Aby zmodyfikować ten parametr, przejdź do zakładki Ustawienia w zakładce Konfiguracje bazy danych HBase, a następnie znajdź % RegionServer przydzielonych do buforów odczytu.

    Rozmiar pamięci podręcznej bloku pamięci bazy danych Apache HBase.

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

Rozmiar pamięci 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 zasobów serwera regionów, który może być wykorzystywany łącznie przez Memstore.

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

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.

Pobrana liczba wierszy bazy danych Apache HBase.

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 oczekiwania skanera jest definiowany przez właściwość hbase.regionserver.lease.period.

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. Właściwość hbase.hregion.max.filesize definiuje rozmiar pojedynczego HFile dla regionu. Region jest podzielony na dwa regiony, jeśli suma wszystkich HFiles w regionie jest większa niż to ustawienie.

`Apache HBase HRegion maksymalna wielkość pliku (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, przy 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.

  • HBase blokuje aktualizacje, jeżeli Memstore ma mniej niż (hbase.hregion.memstore.flush.size * hbase.hregion.memstore.block.multiplier) bajtów.

    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.

Mnożnik bloku regionów Apache HBase.

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.

Ustaw lokalny bufor alokacji dla 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