Vídeo: JOTracker 2024
O processamento do MapReduce no Hadoop 1 é tratado pelos daemons JobTracker e TaskTracker. O JobTracker mantém uma visão de todos os recursos de processamento disponíveis no cluster Hadoop e, à medida que os pedidos de aplicativos entram, ele agende e os implanta nos nós TaskTracker para execução.
À medida que os aplicativos estão sendo executados, o JobTracker recebe atualizações de status dos nós TaskTracker para acompanhar o progresso e, se necessário, coordenar o tratamento de quaisquer falhas. O JobTracker precisa ser executado em um nó mestre no cluster Hadoop, pois coordena a execução de todos os aplicativos MapReduce no cluster, por isso é um serviço de missão crítica.
Uma instância do daemon TaskTracker é executada em cada nó escravo no cluster Hadoop, o que significa que cada nó escravo possui um serviço que o vincula ao processamento (TaskTracker) e ao armazenamento (DataNode) o que permite que o Hadoop seja um sistema distribuído.
Como um processo escravo, o TaskTracker recebe pedidos de processamento do JobTracker. Sua principal responsabilidade é rastrear a execução das cargas de trabalho do MapReduce ocorrendo localmente no nó escravo e enviar atualizações de status para o JobTracker.
TaskTrackers gerencia os recursos de processamento em cada nodo escravo sob a forma de slots de processamento - os slots definidos para tarefas de mapa e reduzir tarefas, para serem exatos. O número total de mapas e redução de slots indica quantas tarefas de mapa e redução podem ser executadas ao mesmo tempo no nó escravo.
Quando se trata de ajustar um cluster Hadoop, a definição do número ideal de mapas e a redução de slots é fundamental. O número de slots precisa ser cuidadosamente configurado com base nos recursos de memória, disco e CPU disponíveis em cada nó escravo. A memória é a mais crítica desses três recursos em uma perspectiva de desempenho. Como tal, o número total de slots de tarefa precisa ser equilibrado com a quantidade máxima de memória alocada ao tamanho do heap de Java.
Tenha em mente que cada mapa e redução de tarefas geram sua própria máquina virtual Java (JVM) e que o heap representa a quantidade de memória alocada para cada JVM. A proporção de slots de mapas para reduzir slots também é uma consideração importante.
Por exemplo, se você tiver muitos slots de mapas e não basta reduzir slots para suas cargas de trabalho, os slots de mapas tendem a ficar ociosos, enquanto seus trabalhos estão aguardando a redução de slots para se tornarem disponíveis.
São definidos conjuntos distintivos de slots para tarefas de mapa e reduzem as tarefas porque usam recursos de computação de forma bem diferente.As tarefas de mapa são atribuídas com base na localidade de dados e dependem fortemente de E / S e CPU do disco. As tarefas de redução são atribuídas com base na disponibilidade, não na localidade, e dependem fortemente da largura de banda da rede porque precisam receber saída das tarefas do mapa.