Optimalizace Apache HBase s využitím Apache Ambari ve službě Azure HDInsight
Apache Ambari je webové rozhraní pro správu a monitorování clusterů HDInsight. Úvod do webového uživatelského rozhraní Ambari najdete v tématu Správa clusterů HDInsight pomocí webového uživatelského rozhraní Apache Ambari.
Konfigurace Apache HBase se upraví na kartě Konfigurace HBase. Následující části popisují některá důležitá nastavení konfigurace, která ovlivňují výkon HBase.
Nastavení HBASE_HEAPSIZE
Poznámka:
Tento článek obsahuje odkazy na hlavní termín termín, který už Microsoft nepoužívá. Když se termín odebere ze softwaru, odebereme ho z tohoto článku.
Velikost haldy HBase určuje maximální velikost haldy, která se má použít v megabajtech podle oblastí a hlavních serverů. Výchozí hodnota je 1 000 MB. Tato hodnota by se měla ladit pro úlohu clusteru.
Chcete-li upravit, přejděte do podokna Advanced HBase-env na kartě Konfigurace HBase a vyhledejte
HBASE_HEAPSIZE
nastavení.Změňte výchozí hodnotu na 5 000 MB.
Optimalizace úloh náročných na čtení
Následující konfigurace jsou důležité ke zlepšení výkonu úloh náročných na čtení.
Velikost mezipaměti bloku
Bloková mezipaměť je mezipaměť pro čtení. Parametr hfile.block.cache.size
řídí velikost mezipaměti bloku. Výchozí hodnota je 0,4, což je 40 procent celkové paměti serveru oblasti. Větší velikost mezipaměti bloku, rychlejší bude náhodné čtení.
Chcete-li upravit tento parametr, přejděte na kartu Nastavení na kartě Konfigurace HBase a vyhledejte % of RegionServer Přiděleno pro vyrovnávací paměti pro čtení.
Pokud chcete změnit hodnotu, vyberte ikonu Upravit .
Velikost memstore
Všechny úpravy se ukládají do vyrovnávací paměti označované jako Memstore. Tato vyrovnávací paměť zvyšuje celkové množství dat, která lze zapisovat na disk v rámci jedné operace. Zároveň zrychluje přístup k nedávným úpravám. Velikost Memstore definuje následující dva parametry:
hbase.regionserver.global.memstore.UpperLimit
: Definuje maximální procento serveru oblasti, který může použít kombinace Memstore.hbase.regionserver.global.memstore.LowerLimit
: Definuje minimální procento serveru oblasti, který může kombinovat Memstore.
Pokud chcete optimalizovat náhodné čtení, můžete snížit horní a dolní limity Memstore.
Počet řádků načtených při skenování z disku
Nastavení hbase.client.scanner.caching
definuje počet řádků načtených z disku při next
zavolání metody na skeneru. Výchozí hodnota je 100. Čím vyšší je číslo, tím méně vzdálených volání provedených z klienta na server oblasti, což vede k rychlejším kontrolám. Toto nastavení ale zvyšuje zatížení paměti u klienta.
Důležité
Nenastavujte hodnotu tak, aby čas mezi vyvoláním další metody ve skeneru byl větší než časový limit skeneru. Doba časového limitu skeneru je definována hbase.regionserver.lease.period
vlastností.
Optimalizace úloh náročných na zápis
Následující konfigurace jsou důležité ke zlepšení výkonu úloh náročných na zápis.
Maximální velikost souboru oblasti
HBase ukládá data v interním formátu souboru označovaného jako HFile
. Vlastnost hbase.hregion.max.filesize
definuje velikost jednoho HFile
objektu pro oblast. Oblast je rozdělená do dvou oblastí, pokud je součet všech HFiles
v oblasti větší než toto nastavení.
Čím větší je velikost souboru oblasti, tím menší je počet rozdělení. Velikost souboru můžete zvětšit a určit hodnotu, která má za následek maximální výkon zápisu.
Vyhněte se blokování aktualizací
Vlastnost
hbase.hregion.memstore.flush.size
definuje velikost, při které je Memstore vyprázdněna na disk. Výchozí velikost je 128 MB.Definuje
hbase.hregion.memstore.block.multiplier
násobitel bloku oblasti HBase. Výchozí hodnota je 4. Maximální povolená hodnota je 8.HBase blokuje aktualizace, pokud je memstore (
hbase.hregion.memstore.flush.size
*hbase.hregion.memstore.block.multiplier
) bajty.U výchozích hodnot velikostí vyprázdnění a násobitele bloků se aktualizace zablokují, když má Memstore velikost 128 × 4 = 512 MB. Chcete-li snížit počet blokování aktualizací, zvyšte hodnotu
hbase.hregion.memstore.block.multiplier
.
Definovat velikost memstore
Parametry hbase.regionserver.global.memstore.upperLimit
definují hbase.regionserver.global.memstore.lowerLimit
velikost Memstore. Nastavení těchto hodnot se rovná sobě snižuje pozastavení během zápisu (což také způsobuje častější vyprázdnění) a vede ke zvýšení výkonu zápisu.
Nastavení vyrovnávací paměti pro místní přidělení Memstore
Vlastnost hbase.hregion.memstore.mslab.enabled
definuje využití vyrovnávací paměti místního přidělení Memstore. Pokud je tato možnost povolená (true), zabrání toto nastavení fragmentaci haldy během náročné operace zápisu. Výchozí hodnota je true.