Neste tutorial do Hadoop, vamos explicar o conceito de localidade de dados no Hadoop.
Em primeiro lugar, veremos a introdução ao MapReduce Data locality no Hadoop, depois discutiremos a necessidade do Hadoop Data Locality a seguir com as categorias de Data Locality no MapReduce, Otimização da localidade de dados.
Por fim, veremos as vantagens do princípio Hadoop Data Locality neste tutorial do MapReduce.
O que é a localidade de dados no Hadoop MapReduce?
A localidade de dados no Hadoop é o processo de mover a computação para perto de onde os dados reais residem, em vez de mover grandes dados para a computação. Isso minimiza o congestionamento geral da rede. Isso também aumenta a taxa de transferência geral do sistema.
A principal desvantagem do Hadoop foi o tráfego de rede cross-switch devido à enorme quantidade de dados. Para superar essa desvantagem, Data Locality surgiu.
No Hadoop, HDFS armazena conjuntos de dados. O framework divide os conjuntos de dados em blocos e armazena nos datanodes. Quando um cliente executa o trabalho MapReduce, o NameNode envia o código MapReduce para os datanodes nos quais os dados estão disponíveis de acordo com o trabalho MapReduce.
Requisito para a localidade de dados do Hadoop
A arquitetura Hadoop precisa satisfazer as condições abaixo para obter os benefícios de todas as vantagens da localidade de dados:
- Primeiro, o cluster Hadoop deve ter a topologia apropriada. O código do Hadoop deve ter a capacidade de ler a localidade dos dados.
- Segundo, o Apache Hadoop deve estar ciente da topologia dos nós onde as tarefas são executadas. Além disso, o Hadoop deve saber onde os dados estão localizados.
Categorias de localidade de dados no Hadoop
As várias categorias no Hadoop Data Locality são as seguintes:
1. Localidade de dados local de dados no Hadoop
Neste, os dados estão localizados no mesmo nó que o mapeador trabalhando nos dados. Nisso, a proximidade dos dados está muito próxima da computação. Localidade de dados local de dados é o cenário mais preferido.
2. Localidade de dados intra-rack no Hadoop
Como sabemos, nem sempre é possível executar o mapeador no mesmo datanode devido a restrições de recursos. Nesse caso, é preferível executar o mapeador no nó diferente, mas no mesmo rack.
3. Localidade de dados entre racks no Hadoop
Às vezes também não é possível executar o mapeador em um nó diferente no mesmo rack. Em tal situação, executaremos o mapeador nos nós em diferentes racks. A localidade de dados entre racks é o cenário menos preferido.
Otimização de localidade de dados do Hadoop
Como a localidade de dados é a principal vantagem do Hadoop MapReduce. Mas isso nem sempre é benéfico na prática devido a vários motivos, como cluster heterogêneo, execução especulativa, distribuição e posicionamento de dados e layout de dados.
Em grandes aglomerados, os desafios tornam-se mais prevalentes. Como em grandes clusters quanto maior o número de nós de dados e dados, menor é a localidade.
Em clusters maiores, alguns nós são mais novos e mais rápidos que os outros, criando os dados para calcular a proporção fora de equilíbrio. Assim, grandes aglomerados tendem a não ser completamente homogêneos.
Na execução especulativa do Hadoop, pois os dados podem não ser locais, mas usam o poder de computação. A principal causa também está no layout/posicionamento de dados. Além disso, o processamento de dados não locais sobrecarrega a rede, o que cria problemas de escalabilidade. Portanto, a rede se torna o gargalo.
Também podemos melhorar a localidade de dados detectando primeiro quais trabalhos se degradaram ao longo do tempo ou problema de localidade de dados. A resolução de problemas é mais complexa e envolve alterar o posicionamento dos dados e o layout dos dados usando um agendador diferente.
Depois disso, temos que verificar se uma nova execução da mesma carga de trabalho tem uma melhor relação de localidade de dados.
Vantagens da localidade de dados no Hadoop
- Alto rendimento – A localidade de dados no Hadoop aumenta a taxa de transferência geral do sistema.
- Execução mais rápida – Na localidade de dados, a estrutura move o código para o nó onde os dados residem em vez de mover grandes dados para o nó. Assim, isso torna o Hadoop mais rápido. Como o tamanho do programa é sempre menor que o tamanho dos dados, mover os dados é um gargalo na transferência de rede.
Conclusão
Concluindo, a localidade de dados no Hadoop melhora a execução geral do sistema e torna o Hadoop mais rápido. Assim, reduz o congestionamento da rede.
Se você achar este blog útil ou tiver alguma dúvida, deixe um comentário na seção de comentários abaixo. Teremos o maior prazer em resolvê-los.