Innehållsförteckning:
Video: Hadoop Rack Awareness 2024
I ett Hadoop-kluster körs varje datodenodning (även kallad slave node ) bakgrundsprocess med namnet DataNode. Denna bakgrundsprocess (även känd som en daemon ) håller reda på de skivor data som systemet lagrar på sin dator. Det talar regelbundet till master-servern för HDFS (kallad NameNode) för att rapportera om hälsa och status för de lokalt lagrade data.
Datablock lagras som råa filer i det lokala filsystemet. Ur Hadoop-användarens perspektiv har du ingen aning om vilken av slavnoderna som finns i filerna du behöver behandla. Inifrån Hadoop ser du inte datablock eller hur de distribueras över klustret - allt du ser är en lista över filer i HDFS.
Komplexiteten i hur filblocken distribueras över klustret är dold för dig - du vet inte hur komplicerat allt är och du behöver inte behöva till känna till. Faktum är att slavnoderna inte ens vet vad som ligger inom datablocken de lagrar. Det är namnet NameNode-servern som känner till mappningarna av vilka datablock som komponerar de filer som är lagrade i HDFS.
Bättre lever genom uppsägning
En grundläggande designprincip för HDFS är konceptet att minimera kostnaden för de enskilda slavnoderna med hjälp av råvarukomponenter. För massivt skalbara system är den här förnuftet en förnuftig, eftersom kostnaderna eskalerar snabbt när du behöver hundratals eller tusentals slavnoder. Att använda billig maskinvara har dock en följd, eftersom de enskilda komponenterna inte är lika pålitliga som dyrare hårdvara.
När du väljer lagringsalternativ, överväga effekterna av att använda råvarustationer i stället för dyra företagskvalitetsdrifter. Tänk dig att du har ett 750-nod-kluster, där varje nod har 12 hårddiskar avsedda för HDFS-lagring.
Med en årlig felfrekvens (AFR) på 4 procent för hårddiskenheter (en given hårddisk har 4 procent sannolikhet att det inte går att misslyckas under ett givet år) kommer ditt kluster sannolikt att uppleva en hårddisk misslyckande varje dag på året.
Eftersom det kan finnas så många slavanoder, är deras misslyckande också en vanlig förekomst i större grupper med hundratals eller fler noder. Med denna information i åtanke har HDFS konstruerats utifrån antagandet att alla hårdvarukomponenter, även på slavnivånivå, är opålitliga.
HDFS övervinner otillförlitligheten hos enskilda hårdvarukomponenter genom redundans: Det är tanken bakom de tre kopiorna av varje fil som lagras i HDFS, som distribueras över hela systemet.Mer specifikt har varje filblock som är lagrat i HDFS totalt tre replikor. Om ett system bryter med ett specifikt filblock som du behöver kan du vända dig till de andra två.
Utformning av slave node server design
För att balansera sådana viktiga faktorer som totala ägandekostnader, lagringskapacitet och prestanda, måste du noggrant planera utformningen av dina slavnoder.
Du ser vanligtvis slavnoder nu där varje nod normalt har mellan 12 och 16 lokalt fästa 3TB-hårddiskar. Slave noder använder måttligt snabba dubbla socket processorer med sex till åtta kärnor vardera - inga hastighets demoner, med andra ord. Detta åtföljs av 48 GB RAM. Kort sagt, den här servern är optimerad för tät lagring.
Eftersom HDFS är ett filsystem för användarutrymme, är det viktigt att optimera det lokala filsystemet på slavnoderna för att arbeta med HDFS. I detta hänseende väljer ett filsystem för Linux-installationen på slavnoderna ett stort beslut när du konfigurerar dina servrar.
Ext3 är det vanligast använda filsystemet eftersom det har varit det mest stabila alternativet under ett antal år. Titta på Ext4, dock. Det är nästa version av Ext3, och det har varit tillgängligt tillräckligt länge för att bli allmänt ansett som stabil och pålitlig.
Viktigare för våra ändamål, det har ett antal optimeringar för hantering av stora filer, vilket gör det till ett idealiskt val för HDFS slave node-servrar.
Använd inte Linux Logical Volume Manager (LVM) - det representerar ett extra lager mellan Linux-filsystemet och HDFS, vilket hindrar Hadoop från att optimera prestanda. Specifikt aggregerar LVM-skivor, vilket hämmar resurshanteringen som HDFS och YARN gör, baserat på hur filer distribueras på de fysiska enheterna.