Cluster Hadoop
O que é um cluster Hadoop?
O Apache Hadoop é um framework de software de código aberto baseado em Java e um mecanismo de processamento paralelo de dados. Ele permite que tarefas de processamento de análise de big data sejam divididas em tarefas menores que podem ser executadas em paralelo usando um algoritmo (como o MapReduce) e distribuindo-as em clusters Hadoop. Um cluster Hadoop é uma coleção de computadores chamados nós que estão conectados em rede para executar tais cálculos paralelos em grandes conjuntos de dados. Os clusters Hadoop, ao contrário de outros clusters de computador, são projetados especificamente para armazenar e analisar grandes quantidades de dados estruturados e não estruturados em um ambiente de computação distribuído. O que diferencia o ecossistema Hadoop de outros clusters de computador é sua estrutura e arquitetura únicas. Um cluster Hadoop consiste em uma rede de nós master e slave conectados que usam hardware de commodity de baixo custo e alta disponibilidade. A capacidade de dimensionar nós linearmente e adicionar ou subtrair rapidamente com base na demanda de volume o torna adequado para análises de big data com grandes variações no tamanho do conjunto de dados.
Arquitetura de cluster Hadoop
Um cluster Hadoop consiste em uma rede de nós master e worker que organizam e executam vários jobs no Hadoop Distributed File System. Os nós master normalmente usam hardware de alta qualidade e cada um contém um NameNode, um NameNode secundário e um JobTracker rodando em máquinas separadas. Os nós worker consistem em máquinas virtuais que executam serviços de DataNode e TaskTracker em hardware comum e fazem o trabalho real de armazenamento e processamento de jobs conforme orientado pelo nó master. A parte final do sistema é o nó client, que é responsável por carregar dados e buscar resultados.
- Nó master: responsável por armazenar dados em HDFS e supervisionar as principais operações, como usar MapReduce para executar cálculos paralelos nos dados.
- Nó worker: compõe a maioria das máquinas virtuais em um cluster Hadoop e executa jobs de computação e armazenamento de dados. Cada nó worker é usado para executar os serviços de DataNode e TaskTracker e receber instruções do nó master.
- Nó client: responsável por carregar os dados no cluster. Um nó client primeiro envia um job MapReduce que descreve como processar os dados e busca os resultados quando o processamento é concluído.
Qual é o tamanho do cluster Hadoop?
O tamanho do cluster Hadoop é um conjunto de métricas que definem o armazenamento e o poder de computação para executar cargas de trabalho do Hadoop, como:
- Número de nós: número de nós master, número de nós edge, número de nós worker.
- Configuração para cada tipo de nó: número de núcleos, RAM e volume de disco por nó.
Benefícios dos clusters Hadoop
- Os clusters Hadoop podem acelerar muitos jobs de análise de big data dividindo grandes tarefas computacionais em tarefas menores que podem ser executadas de maneira paralela distribuída.
- Os clusters Hadoop são altamente escaláveis e, à medida que os blocos de dados crescem, podem adicionar nós rapidamente para aumentar a taxa de transferência e manter a velocidade de processamento.
- Usando hardware de commodity de baixo custo e altamente disponível, os clusters Hadoop são relativamente fáceis e baratos de configurar e manter.
- Os clusters Hadoop replicam conjuntos de dados em sistemas de arquivos distribuídos, tornando os dados resilientes a perdas e falhas de cluster.
- Os clusters Hadoop permitem integrar e aproveitar dados de vários sistemas de origem e formatos de dados diferentes.
- É possível implantar o Hadoop usando uma instalação de nó único para avaliação.
Desafios dos clusters Hadoop
- Problemas de arquivos pequenos: o Hadoop tem dificuldade com um grande número de arquivos pequenos, ou seja, arquivos menores que o tamanho do bloco do Hadoop de 128 MB ou 256 MB por padrão. Ele não foi projetado para escalar e suportar big data. Em vez disso, o Hadoop funciona bem quando há uma pequena quantidade de arquivos grandes. Por fim, a crescente quantidade de arquivos pequenos sobrecarrega o NameNode, que armazena o namespace do sistema.
- Alta sobrecarga de processamento: as operações de leitura e gravação no Hadoop podem se tornar muito caras rapidamente, especialmente ao processar grandes quantidades de dados. Isso ocorre porque o Hadoop lê e grava dados do disco, em vez de poder fazer o processamento na memória.
- Suporta apenas processamento em batch: o Hadoop é feito para processamento em batch de pequenos volumes de arquivos grandes. Isso remonta a como os dados são coletados e armazenados, o que deve ser feito antes que o processamento possa começar. O que isso significa é que ele não é compatível com streaming de dados e não permite processamento em tempo real com baixa latência.
- Processamento iterativo: a estrutura de fluxo de dados do Hadoop é configurada para ser sequencial, impossibilitando a iteração ou o uso para ML.