Como lançar um aplicativo baseado fio
Video: O MELHOR APLICATIVO DE TODOS
Conteúdo
Para mostrar como os vários fios (mais um recurso do negociador) componentes trabalham juntos, você pode caminhar através da execução de uma aplicação. Por uma questão de argumento, ele pode ser um aplicativo MapReduce, com a arquitetura JobTracker e TaskTracker.
Video: Conheça Formingo! - Construtor de aplicativos para pesquisas e coletas de dados em campo
Basta lembrar que, com o fio, ele pode ser qualquer tipo de aplicação para a qual não há uma estrutura de aplicativo. A figura mostra as interacções, e a conta de prosa é definido para baixo na lista passo seguinte:
A aplicação cliente envia um pedido de aplicação para o Gerenciador de recursos.
O Gerenciador de recursos faz uma Node Manager para criar uma instância mestre de aplicação para esta aplicação. O Node Manager recebe um recipiente para ele e começa-lo.
Esta nova aplicação Mestre inicializa-se por registrar-se com o Gerenciador de recursos.
O Mestre Aplicação descobre como muitos recursos de processamento são necessários para executar o aplicativo inteiro.
Isso é feito por solicitação do NameNode os nomes e locais dos arquivos e blocos de dados das necessidades da aplicação e calcular quantas tarefas mapa e reduzir as tarefas são necessárias para processar todos esses dados.
O Mestre de aplicação, em seguida, solicita os recursos necessários a partir do Gerenciador de recursos.
O Mestre aplicativo envia mensagens de pulsação para o Gerenciador de recursos ao longo de sua vida, com uma lista de pé de recursos solicitados e quaisquer alterações (por exemplo, uma solicitação de matar).
O Gerenciador de recursos aceita a solicitação de recursos e enfileira as solicitações de recursos específicos ao lado de todas as outras solicitações de recursos que já estão programados.
Como os recursos solicitados estejam disponíveis nos nós de escravos, o Gerenciador de recursos concede as concessões mestre de aplicação para recipientes em nós escravos específicos.
O Mestre aplicativo solicita o recipiente atribuído a partir do Node Manager e envia um contexto de Lançamento Container (CLC).
O CLC inclui tudo, a tarefa aplicativo precisa para executar: variáveis de ambiente, tokens de autenticação, os recursos locais necessários em tempo de execução (por exemplo, arquivos de dados adicionais, ou a lógica do aplicativo em JARs), ea cadeia de comando necessária para iniciar o processo real. O Node Manager, em seguida, cria o processo recipiente solicitado e começa-lo.
O aplicativo é executado enquanto os processos do contêiner estão em execução.
O Mestre Aplicação monitora o seu progresso, e no caso de uma falha de embalagem ou uma falha de nó, a tarefa é reiniciado no próximo slot disponível. Se a mesma tarefa falhar depois de quatro tentativas (um valor padrão que pode ser personalizado), todo o trabalho falhará. Durante esta fase, o mestre de aplicativos também se comunica diretamente com o cliente para responder às solicitações de status.
Além disso, enquanto os contentores estão em execução, o Gerenciador de recursos pode enviar uma ordem de matar ao Node Manager para encerrar um recipiente específico.
Isso pode ser como resultado de uma mudança prioridade de agendamento ou uma operação normal, tal como o próprio aplicativo já está sendo concluída.
No caso de aplicativos MapReduce, após as tarefas mapa terminar, os recursos pedidos aplicação Mestre para uma rodada de reduzir as tarefas para processar os conjuntos de resultados provisórios das tarefas mapa.
Quando todas as tarefas estiverem concluídas, o Mestre aplicativo envia o conjunto de resultados para o aplicativo cliente, informa o Gerenciador de recursos que o aplicativo foi concluída com êxito, deregisters-se do Gerenciador de recursos, e se desliga.
Video: Melhores aplicativos (EP 05): Drivvo
Como os daemons JobTracker e TaskTracker e ranhuras de processamento em Hadoop 1, todos os fios e os daemons recipientes são processos Java, que funcionam em JVM. Com FIO, você não é mais necessário para definir quantos mapa e reduzir slots que você precisar - você simplesmente decidir quanta memória mapa e reduzir as tarefas podem ter. O Gerenciador de recursos irá alocar recipientes por mapa ou reduzir tarefas no cluster com base na quantidade de memória disponível.
Quando você está escrevendo aplicações Hadoop, você não precisa se preocupar em solicitar recursos e monitoramento de containers. Seja qual for a estrutura de aplicativo que você está usando faz tudo isso para você. É sempre uma boa idéia, no entanto, para entender o que se passa quando as suas aplicações estão em execução no cluster. Este conhecimento pode ajudá-lo imensamente quando você está monitorando o progresso aplicação ou depurar uma tarefa falhou.