I den här bloggen om Hadoop Tutorial, vi kommer att täcka HDFS Diskbalanserare i detalj. Först och främst kommer vi att diskutera vad som är Disk Balancer i Hadoop, sedan kommer vi att diskutera olika funktioner för Hadoop Disk Balancer.
Vi kommer också att diskutera Intra DataNode Disk Balancer i hadoop och dess algoritm. Äntligen i denna handledning kommer vi att täcka funktionerna i Hadoop HDFS Diskbalanserare i detalj.
Introduktion till HDFS Disk Balancer
HDFS Diskbalanserare är ett kommandoradsverktyg. Den distribuerar data enhetligt på alla diskar i en datanod. HDFS Disk balancer är helt annorlunda än Balancer, som tar hand om klusteromfattande databalansering.
På grund av nedanstående skäl kan det hända att HDFS inte alltid distribuerar data på ett enhetligt sätt över diskarna:
- Mycket skrivande och raderingar
- Diskbyte
Detta leder till betydande skevhet inom en DataNode. HDFS Balancer kan alltså inte hantera detta, som handlar om Inter, Non-Intra, DN skevhet.
Så, ny Intra-DataNode Balancing-funktionalitet kom till för att hantera denna situation. Detta anropas via HDFS Disk Balancer CLI.
Disk Balancer arbetar mot en given datanod och flyttar block från en disk till en annan.
Användning av Disk Balancer
Genom att skapa en plan (en uppsättning satser) och exekvera den planen på datanoden, fungerar HDFS Disk balancer. Dessa uppsättningar satser beskriver hur mycket data som ska flyttas mellan två diskar.
En plan har många rörelsesteg. Dessa flyttsteg har ett antal byte att flytta, källdisk och målskiva. En plan kan köras mot en operativ dataanod.
HDFS Diskbalanserare är inte aktiverad som standard;
Så för att aktivera HDFS diskbalanserare dfs.disk.balancer.enabled är satt till true i hdfs-site.xml .
HDFS Intra-DataNode DiskBalancer
När användaren skriver nytt block i HDFS, så välj disken för blocket genom att använda volymval av policydatanode. Nedan finns två sådana policyer:
- Round-robin – Denna policy distribuerar de nya blocken på ett enhetligt sätt över de tillgängliga diskarna.
- Tillgängligt utrymme – Denna policy skriver data till disken som har mer ledigt utrymme i procent.
Som standard använder HDFS DataNode Round-robin-policyn.
Datanode skapar fortfarande betydande obalansvolymer på grund av massiv radering och tillägg av filer i HDFS. Det är till och med möjligt att tillgängligt utrymmesbaserad volymvalspolicy kan leda till mindre effektiv disk I/O.
Varje ny skrivning kommer att gå till den nya tillagda tomma disken medan de andra diskarna vid den tiden var inaktiva. Skapar alltså en flaskhals på den nya disken.
För att minska problemet med dataobalans utvecklade Apache Hadoop-gemenskapen offlineserverskript. HDFS-1312 introducerade också en diskbalanserare online. Detta ombalanserar volymerna på en löpande datanod baserat på olika mätvärden.
Förmåga hos HDFS Disk Balancer
1. Dataspridningsrapport
Användaren kan mäta hur man sprider data genom mätvärden.
a) Volymdatatäthet eller Intranoddatatäthet
Detta mått kan beräkna hur mycket data som finns på en nod. Berätta också vilken idealisk lagring på varje volym är.
Formel för beräkning, d.v.s. total data vid den noden dividerad med den totala diskkapaciteten för den noden.
Idealisk lagring = totalt använd % total kapacitet
Volymdatadensitet = idealisk lagring – dfsUsedRatio
- Positivt värde- Detta indikerar att disken är underutnyttjad.
- Negativt värde- Detta indikerar att disken är överutnyttjad.
b) Noddatatäthet eller datadensitet mellan noder
Som nu har vi beräknat volymdatatäthet. Så vi kan enkelt jämföra vilka alla noder i datacentret som behöver balansera?
c) Rapporter
Nu har vi volymdatatäthet och noddatatäthet. Så diskbalanseraren kan balansera de 20 bästa noderna i klustret som har den skeva datadistributionen.
2. Balansera data mellan volym medan datanod är vid liv
HDFS Diskbalanserare har förmågan att flytta data från en volym till en annan.
Slutsats
Sammanfattningsvis kan vi säga att Disk Balancer är verktyget som distribuerar data på alla diskar i en datanod. Det fungerar genom att skapa en plan (uppsättning uttalanden) och exekvera den planen på datanoden.
HDFS Disk Balancer använder Round-robin och Tillgängligt utrymme policyer för att välja disken för blocket. Om du tycker att den här bloggen är användbar, eller om du har några frågor, så dela gärna med oss i kommentarsfältet. Vi löser dem gärna.