Video: hadoop yarn architecture 2024
MapReduce-verwerking in Hadoop 1 wordt afgehandeld door de daemon van JobTracker en TaskTracker. De JobTracker onderhoudt een weergave van alle beschikbare verwerkingsbronnen in de Hadoop-cluster en, wanneer toepassingsverzoeken binnenkomen, worden deze gepland en geïmplementeerd naar de knooppunten van de TaskTracker voor uitvoering.
Terwijl toepassingen worden uitgevoerd, ontvangt JobTracker statusupdates van de knooppunten van TaskTracker om hun voortgang bij te houden en, indien nodig, de afhandeling van eventuele fouten te coördineren. De JobTracker moet worden uitgevoerd op een hoofdknooppunt in het Hadoop-cluster omdat dit de uitvoering van alle MapReduce-toepassingen in het cluster coördineert, dus het is een bedrijfskritieke service.
Een exemplaar van de TaskTracker daemon wordt uitgevoerd op elk slaafknooppunt in het Hadoop-cluster, wat betekent dat elk slaafknooppunt een service heeft die het verbindt met de verwerking (TaskTracker) en de opslag (DataNode), waarmee Hadoop een gedistribueerd systeem kan zijn.
Als een slaafproces ontvangt de TaskTracker verwerkingsverzoeken van de JobTracker. Zijn primaire verantwoordelijkheid is om de uitvoering van MapReduce-workloads lokaal op zijn slaveknooppunt te volgen en om statusupdates naar de JobTracker te verzenden.
TaskTrackers beheren de verwerkingsresources op elk slaveknooppunt in de vorm van verwerkingsslots - de slots die zijn gedefinieerd voor kaarttaken en taken verminderen, om precies te zijn. Het totale aantal kaart- en kortingsslots geeft aan hoeveel kaart- en taakafnames tegelijk in het slaafknooppunt kunnen worden uitgevoerd.
Als het gaat om het afstemmen van een Hadoop-cluster, is het van cruciaal belang om het optimale aantal kaarten in te stellen en sleuven te verkleinen. Het aantal slots moet zorgvuldig worden geconfigureerd op basis van beschikbare geheugen-, schijf- en CPU-bronnen op elk slaafknooppunt. Geheugen is de meest kritische van deze drie bronnen vanuit een prestatieperspectief. Als zodanig moet het totale aantal taaklocaties worden uitgebalanceerd met de maximale hoeveelheid geheugen die is toegewezen aan de Java-heapgrootte.
Houd in gedachten dat elke kaart en taak verlaagt zijn eigen Java virtuele machine (JVM) en dat de heap de hoeveelheid geheugen vertegenwoordigt die is toegewezen voor elke JVM. De verhouding tussen kaartsleuven om slots te verkleinen is ook een belangrijke overweging.
Als u bijvoorbeeld te veel kaartsleuven heeft en te weinig slots voor uw workloads verkleint, hebben kaartsleuven de neiging stil te zitten, terwijl uw taken wachten op het verminderen van slots.
Duidelijke sets slots zijn gedefinieerd voor kaarttaken en verminderen taken omdat ze computerresources heel anders gebruiken.Kaarttaken worden toegewezen op basis van gegevenslocatie en ze zijn sterk afhankelijk van schijf-I / O en CPU. Verkleinde taken worden toegewezen op basis van beschikbaarheid, niet op lokaliteit en ze zijn sterk afhankelijk van netwerkbandbreedte omdat ze uitvoer van kaarttaken moeten ontvangen.