In deze blog van Hadoop-zelfstudie we gaan het hebben over HDFS Disk Balancer in detail. Allereerst zullen we bespreken wat Disk Balancer is in Hadoop, daarna zullen we verschillende bewerkingen van Hadoop Disk Balancer bespreken.
We zullen ook de Intra DataNode Disk Balancer in hadoop en zijn algoritme bespreken. Ten slotte zullen we in deze tutorial de functies van de Hadoop . behandelen HDFS Schijfbalancer in detail.
Inleiding tot HDFS Disk Balancer
HDFS Schijfbalancer is een opdrachtregelprogramma. Het verdeelt de gegevens uniform over alle schijven van een datanode. HDFS Disk balancer is compleet anders dan Balancer, dat zorgt voor clusterbrede databalancing.
Om de onderstaande redenen is het mogelijk dat HDFS gegevens niet altijd op een uniforme manier over de schijven verdeelt:
- Veel schrijven en verwijderen
- Schijfvervanging
Dit leidt tot aanzienlijke scheeftrekkingen binnen een DataNode. Dus HDFS Balancer kan dit niet aan, wat zich bezighoudt met Inter, Non-Intra, DN skew.
Dus ontstond er nieuwe Intra-DataNode Balancing-functionaliteit om met deze situatie om te gaan. Dit wordt aangeroepen via de HDFS Disk Balancer CLI.
Disk Balancer werkt tegen een bepaalde datanode en verplaatst blokken van de ene schijf naar de andere.
Werking van Disk Balancer
Door een plan (een reeks instructies) te maken en dat plan op de datanode uit te voeren, werkt HDFS Disk balancer. Deze sets instructies beschrijven hoeveel gegevens tussen twee schijven moeten worden verplaatst.
Een plan heeft veel verplaatsingsstappen. Deze verplaatsingsstappen hebben een aantal te verplaatsen bytes, bronschijf en doelschijf. Een plan kan worden uitgevoerd tegen een operationele datanode.
HDFS Disk balancer is standaard niet ingeschakeld;
Dus om HDFS disk balancer dfs.disk.balancer.enabled in te schakelen is ingesteld op waar in hdfs-site.xml .
HDFS Intra-DataNode DiskBalancer
Wanneer de gebruiker een nieuw blok in HDFS schrijft, dus door het volume te gebruiken, kiest u de datanode voor beleid en kiest u de schijf voor het blok. Hieronder staan twee van dergelijke beleidsregels:
- Round-robin – Dit beleid verdeelt de nieuwe blokken op een uniforme manier over de beschikbare schijven.
- Beschikbare ruimte – Dit beleid schrijft procentueel gegevens naar de schijf met meer vrije ruimte.
HDFS DataNode gebruikt standaard het Round-robin-beleid.
Datanode creëert nog steeds een aanzienlijk onbalansvolume vanwege het massaal verwijderen en toevoegen van bestanden in HDFS. Het is zelfs mogelijk dat op de beschikbare ruimte gebaseerd beleid voor het kiezen van volumes kan leiden tot minder efficiënte schijf-I/O.
Elke nieuwe schrijfactie gaat naar de nieuw toegevoegde lege schijf terwijl de andere schijven op dat moment inactief waren. Zo creëer je een bottleneck op de nieuwe schijf.
Om het probleem van gegevensonbalans te verminderen, heeft de Apache Hadoop-gemeenschap server offline scripts ontwikkeld. HDFS-1312 introduceerde ook een online schijfbalancer. Hierdoor worden de volumes opnieuw in evenwicht gebracht op een actieve datanode op basis van verschillende meetwaarden.
Mogelijkheden van HDFS Disk Balancer
1. Gegevensverspreidingsrapport
De gebruiker kan meten hoe gegevens worden verspreid door middel van statistieken.
a) Volume datadichtheid of Intra-node datadichtheid
Met deze metrische gegevens kan worden berekend hoeveel gegevens zich op een knooppunt bevinden. Vertel ook wat de ideale opslag op elk volume is.
Formule voor berekening, d.w.z. totale gegevens op dat knooppunt gedeeld door de totale schijfcapaciteit van dat knooppunt.
Ideale opslag = totaal gebruikt % totale capaciteit
Volume datadichtheid = ideale opslag – dfsUsedRatio
- Positieve waarde- Dit geeft aan dat de schijf onderbenut is.
- Negatieve waarde- Dit geeft aan dat de schijf te veel wordt gebruikt.
b) Gegevensdichtheid van knooppunten of gegevensdichtheid tussen knooppunten
Zoals nu hebben we de volumegegevensdichtheid berekend. Dus we kunnen gemakkelijk vergelijken welke alle nodes in het datacenter moeten balanceren?
c) Rapporten
Nu hebben we volumegegevensdichtheid en knooppuntgegevensdichtheid. Dus disk balancer kan de top 20 knooppunten in het cluster met de scheve gegevensdistributie in evenwicht brengen.
2. Balanceer gegevens tussen volume terwijl dataanode in leven is
HDFS Disk Balancer heeft de mogelijkheid om gegevens van het ene volume naar het andere te verplaatsen.
Conclusie
Concluderend kunnen we stellen dat Disk Balancer de tool is die gegevens op alle schijven van een datanode distribueert. Het werkt door een plan (set van verklaringen) te maken en dat plan uit te voeren op de datanode.
HDFS Disk Balancer gebruikt Round-robin en Beschikbare ruimte beleid voor het kiezen van de schijf voor het blok. Als je deze blog nuttig vindt, of als je een vraag hebt, deel deze dan met ons in het commentaargedeelte. We lossen ze graag op.