Qual é o propósito do "modo uber" em hadoop?
-
O que faz o modo uber?
- funciona de forma diferente no mapred 1.X e 2.x? E Onde posso encontrar o cenário para isso?
4 answers
O que é o modo UBER em Hadoop2?
Normalmente, os mapeadores e os redutores serão geridos pelo ResourceManager (RM), O RM criará um contentor separado para o mapper e o redutor. Configuração Uber, permitirá executar mapper e redutores no mesmo processo que o ApplicationMaster (AM).Tarefas Uber:
As tarefas Uber são tarefas que são executadas dentro do MapReduce ApplicationMaster. Em vez disso, se comunicar com RM para criar os contêineres mapper e reducer. O AM executa o mapa e reduz as tarefas dentro de seu próprio processo e evitou a sobrecarga de lançamento e se comunicar com contêineres remotos.
Porquê?
Se tiver um pequeno conjunto de dados ou quiser executar MapReduce com uma pequena quantidade de dados, a configuração Uber ajudá-lo-á, reduzindo o tempo adicional que o MapReduce normalmente gasta na fase de mapper e reducers.
Posso configurar um Uber para todo o trabalho do MapReduce?
A partir de agora, apenas o mapa empregos e empregos com um redutor são suportados.A Uber ocorre quando múltiplos mapeadores e redutores são combinados para usar um único recipiente. Existem quatro configurações principais em torno da configuração das tarefas Uber no mapred-site.xml
. Opções de configuração para as tarefas Uber:
mapreduce.job.ubertask.enable
mapreduce.job.ubertask.maxmaps
mapreduce.job.ubertask.maxreduces
mapreduce.job.ubertask.maxbytes
Em termos de hadoop2.x, empregos Uber são os empregos que são lançados no próprio mapreduce ApplicationMaster, ou seja, não são criados contentores separados para mapear e reduzir postos de trabalho e, portanto, a sobrecarga de criar contentores e comunicar com eles é salva.
Quanto ao trabalho (com hadoop 1.X e 2.x) está preocupado, suponho que a diferença só é observável quando se trata de terminologias de 1.X e 2.x, não há diferença no trabalho.
Os parâmetros de configuração são os mesmos como os mencionados por Navneet Kumar em sua resposta.
PS: Utilize - o apenas com um pequeno conjunto de dados.
Respostas muito boas são dadas para " o que é o modo Uber?" Só para adicionar mais informações para " porquê?"
O mestre da aplicação decide como executar as tarefas que para cima do Trabalho de MapReduce. Se a tarefa for pequena, o mestre da aplicação pode optar por executar as tarefas na mesma JVM que ela mesma. Isso acontece quando ele julga as despesas gerais de alocação e execução de tarefas em novos contêineres supera o ganho em executá-los em paralelo, quando comparado a executá-los sequencialmente em um no.
Agora, as perguntas podem ser levantadas como " o que se qualifica como um trabalho pequeno?Por padrão, uma tarefa pequena é uma que tem menos de 10 mappers, apenas um redutor, e um tamanho de entrada que é menor do que o tamanho de um bloco HDFS.