Video: hadoop yarn architecture 2024
MapReduce-bearbetning i Hadoop 1 hanteras av JobTracker och TaskTracker-demonerna. JobTracker upprätthåller en bild av alla tillgängliga bearbetningsresurser i Hadoop-klustret och, när ansökningsförfrågningar kommer in, schemalägger och distribuerar dem till TaskTracker-noderna för utförande.
När applikationer körs, tar JobTracker statusuppdateringar från TaskTracker-noderna för att spåra deras framsteg och, om nödvändigt, samordna hanteringen av eventuella fel. JobTracker måste springa på en huvudnod i Hadoop-klustret eftersom det samordnar utförandet av alla MapReduce-applikationer i klustret, så det är en missionskritisk tjänst.
En förekomst av TaskTracker-demonen körs på varje slavnod i Hadoop-klustret, vilket innebär att varje slavnod har en tjänst som binder den till bearbetningen (TaskTracker) och lagringen (DataNode), vilket gör att Hadoop kan vara ett distribuerat system.
Som en slavprocess tar TaskTracker bearbetningsförfrågningar från JobTracker. Dess främsta ansvar är att spåra utförandet av MapReduces arbetsbelastningar som sker lokalt på slavnoden och att skicka statusuppdateringar till JobTracker.
TaskTrackers hanterar bearbetningsresurserna på varje slavnod i form av bearbetningsplatser - de platser som definieras för kartuppgifter och reducerar uppgifter, för att vara exakta. Det totala antalet kartor och reducera luckor indikerar hur många kartor och reducera uppgifter som kan utföras på en gång på slavnodet.
När det gäller att ställa in ett Hadoop-kluster är det viktigt att ställa in det optimala antalet kartor och minska slitsarna. Antalet luckor måste konfigureras noggrant utifrån tillgängliga minnes-, disk- och CPU-resurser på varje slavnod. Minne är den mest kritiska av dessa tre resurser ur ett prestationsperspektiv. Som sådant måste det totala antalet uppgiftsluckor balanseras med den maximala minnesmängden som tilldelas Java-heapstorleken.
Tänk på att varje karta och reducera uppgiften ger sin egen Java virtuella maskin (JVM) och att högen representerar mängden minne som tilldelas för varje JVM. Förhållandet mellan kartplatserna för att minska slitsar är också ett viktigt övervägande.
Om du till exempel har för många kortplatser och inte tillräckligt med kortplatser för dina arbetsbelastningar, kommer kortplatserna att vara oförmögna, medan dina jobb väntar på att minska slots för att bli tillgängliga.
Distinkta uppsättningar av luckor definieras för kartuppgifter och reducerar uppgifter eftersom de använder datorresurser ganska annorlunda.Kartuppgifter är tilldelade baserat på dataläge, och de är starka beroende av disk I / O och CPU. Minska uppgifter är tilldelade utifrån tillgänglighet, inte på ort, och de är starkt beroende av nätverksbandbredd, eftersom de behöver ta emot utdata från kartuppgifter.