I ett Hadoop-universum är slavnoder där Hadoop-data lagras och där databehandling sker. Följande tjänster gör det möjligt för slavnoder att lagra och bearbeta data:
-
NodeManager: Koordinerar resurserna för en enskild slavnod och rapporterar till Resurshanteraren.
-
ApplicationMaster: Visar utvecklingen av alla uppgifter som körs på Hadoop-klustret för en specifik applikation. För varje klientapplikation använder resurshanteraren en instans av ApplicationMaster-tjänsten i en behållare på en slavnod. (Kom ihåg att någon nod som kör NodeManager-tjänsten är synlig för resurshanteraren.)
-
Container: En samling av alla resurser som behövs för att köra enskilda uppgifter för en applikation. När en applikation körs på klustret planerar resurshanteraren uppgifterna för applikationen att köra som containertjänster på klustrets slavnoder.
-
TaskTracker: Hanterar den enskilda kartan och reducerar uppgifter som utförs på en slavnod för Hadoop 1-kluster. I Hadoop 2 är denna tjänst föråldrad och har ersatts av YARN-tjänster.
-
DataNode: En HDFS-tjänst som gör det möjligt för NameNode att lagra block på slavnodet.
-
RegionServer: Lagrar data för HBase-systemet. I Hadoop 2 använder HBase Hoya, vilket gör att RegionServer-instanser kan köras i behållare.
Här kör varje slavnod alltid en DataNode-instans (som möjliggör för HDFS att lagra och hämta datablock på slavnodet) och ett NodeManager-instans (vilket gör det möjligt för resurshanteraren att tilldela applikationsuppgifter till slavnoden för behandling). Behållarprocesserna är enskilda uppgifter för applikationer som körs på klustret.
Varje löpande applikation har en dedikerad ApplicationMaster-uppgift, som också körs i en behållare, och spårar utförandet av alla uppgifter som utförs på klustret tills applikationen är klar.
Med HBase på Hadoop 2 följer behållarmodellen fortfarande, som du kan se:
HBase på Hadoop 2 initieras av Hoya Application Master, som begär behållare för HMaster-tjänsterna. (Du behöver flera HMaster-tjänster för redundans.) Hoya Application Master begär också resurser för RegionServers, som också går i specialcontainrar.
Följande bild visar de tjänster som användes på Hadoop 1 slave noder.
För Hadoop 1 kör varje slave node alltid en DataNode-instans (som möjliggör för HDFS att lagra och hämta datablock på slavnoden) och en TaskTracker-instans (som gör det möjligt för JobTracker att tilldela kartan och minska uppgifterna till slavnodet för bearbetning).
Slavknutar har ett fast antal kortplatser och minskar slitsar för utförandet av kartor och reducerar uppgifterna respektive. Om ditt kluster kör HBase måste ett antal av dina slavnoder köra en regionserver-tjänst. Ju mer data du lagrar i HBase, desto mer RegionServer-instanser behöver du.
Hårdvarukriterierna för slavnoder är ganska annorlunda än de för masternoder. Faktum är att kriterierna inte matchar de som finns i traditionella hårdvarureferensarkitekturer för dataservrar. Många av buzzerna kring Hadoop beror på användningen av handelsvaror i designkriterierna för Hadoop-kluster, men kom ihåg att råvaror inte refererar till hårdvaror av konsumentkvalitet.
Hadops slavnoder kräver fortfarande företagshårdvara, men i nedre delen av kostnadsspektret, speciellt för lagring.