V tomto blogu Hadoop Tutorial budeme pokrývat HDFS Disk Balancer v detailu. Nejprve probereme, co je Disk Balancer v Hadoopu, poté probereme různé operace Hadoop Disk Balancer.
Budeme také diskutovat o Intra DataNode Disk Balancer v hadoop a jeho algoritmu. Nakonec v tomto tutoriálu probereme funkce Hadoop HDFS Disk Balancer podrobně.
Úvod do HDFS Disk Balancer
Vyrovnávání disků HDFS je nástroj příkazového řádku. Distribuuje data rovnoměrně na všechny disky datového uzlu. HDFS Disk Balancer je úplně jiný než Balancer, který se stará o vyvažování dat v celém clusteru.
Kvůli níže uvedeným důvodům nemusí HDFS vždy distribuovat data jednotným způsobem mezi disky:
- Mnoho psaní a mazání
- Výměna disku
To vede k významnému zkreslení v DataNode. HDFS Balancer to tedy nemůže zvládnout, což se týká Inter, Non-Intra, DN skew.
A tak vznikla nová funkce Intra-DataNode Balancing, která tuto situaci řeší. To je vyvoláno prostřednictvím rozhraní příkazového řádku HDFS Disk Balancer.
Disk Balancer pracuje proti danému datovému uzlu a přesouvá bloky z jednoho disku na druhý.
Obsluha nástroje Disk Balancer
Díky vytvoření plánu (souboru příkazů) a provedení tohoto plánu na datovém uzlu funguje HDFS Disk Balancer. Tyto sady příkazů popisují, kolik dat by se mělo přesunout mezi dvěma disky.
Plán má mnoho kroků pohybu. Tyto kroky přesunu mají počet bajtů k přesunutí, zdrojový disk a cílový disk. Plán lze spustit proti provoznímu datovému uzlu.
HDFS Disk Balancer není ve výchozím nastavení povolen;
Chcete-li tedy povolit nástroj pro vyrovnávání disku HDFS dfs.disk.balancer.enabled je nastavena pravda v hdfs-site.xml .
HDFS Intra-DataNode DiskBalancer
Když uživatel zapíše nový blok do HDFS, tak pomocí datanode pro volbu svazku vyberte disk pro blok. Níže jsou dvě takové zásady:
- Round-robin – Tato zásada distribuuje nové bloky jednotným způsobem na dostupné disky.
- Dostupné místo – Tato zásada zapisuje data na disk, který má v procentech více volného místa.
Ve výchozím nastavení HDFS DataNode používá zásadu Round-robin.
Datanode stále vytváří značnou nerovnováhu kvůli masivnímu mazání souborů a přidávání do HDFS. Je dokonce možné, že politika výběru svazku na základě dostupného místa může vést k méně efektivnímu I/O disku.
Každý nový zápis půjde na nově přidaný prázdný disk, zatímco ostatní disky byly v tu dobu nečinné. Tím se na novém disku vytvoří úzké hrdlo.
Aby se snížil problém s nerovnováhou dat, komunita Apache Hadoop vyvinula serverové offline skripty. HDFS-1312 také představil online nástroj pro vyrovnávání disků. Toto znovu vyrovnává objemy na běžícím datovém uzlu na základě různých metrik.
Schopnosti HDFS Disk Balancer
1. Přehled rozložení dat
Uživatel může měřit, jak šířit data prostřednictvím metrik.
a) Hustota dat objemu nebo hustota dat uvnitř uzlu
Tato metrika může vypočítat, kolik dat je v uzlu. Také řekněte, jaké je ideální úložiště na každém svazku.
Vzorec pro výpočet, tj. celková data v daném uzlu dělená celkovou kapacitou disku tohoto uzlu.
Ideální úložiště = celková využitá % celková kapacita
Objemová hustota dat = ideální úložiště – dfsUsedRatio
- Pozitivní hodnota- To znamená, že disk není využíván.
- Záporná hodnota- To znamená, že disk je příliš využíván.
b) Hustota dat uzlu nebo hustota dat mezi uzly
Jako nyní jsme vypočítali objemovou hustotu dat. Můžeme tedy snadno porovnat, které všechny uzly v datovém centru potřebují vyvážit?
c) Přehledy
Nyní máme objemovou hustotu dat a hustotu dat uzlů. Nástroj pro vyrovnávání disků tedy může vyvážit 20 nejlepších uzlů v clusteru, které mají zkreslenou distribuci dat.
2. Vyvažte data mezi objemem, dokud jsou datanode naživu
HDFS Disk Balancer má schopnost přesouvat data z jednoho svazku do druhého.
Závěr
Závěrem lze říci, že Disk Balancer je nástroj, který distribuuje data na všechny disky datového uzlu. Funguje to tak, že vytvoříte plán (množinu příkazů) a provedete tento plán na datovém uzlu.
HDFS Disk Balancer používá Round-robin a Dostupné místo zásady pro výběr disku pro blok. Pokud považujete tento blog za užitečný nebo máte jakýkoli dotaz, podělte se s námi v sekci komentářů. Rádi je vyřešíme.