O que é Hadoop? Introdução, Architecture, Ecossistema, Componentes
O que é Hadoop?
Apache Hadoop é uma estrutura de software de código aberto usada para desenvolver aplicativos de processamento de dados que são executados em um ambiente de computação distribuído.
Os aplicativos desenvolvidos com HADOOP são executados em grandes conjuntos de dados distribuídos em clusters de computadores comuns. Os computadores básicos são baratos e amplamente disponíveis. Eles são úteis principalmente para obter maior poder computacional a baixo custo.
Semelhante aos dados que residem em um sistema de arquivos local de um sistema de computador pessoal, no Hadoop, os dados residem em um sistema de arquivos distribuído chamado Sistema de arquivos distribuídos do Hadoop. O modelo de processamento é baseado em 'Localidade de dados' conceito em que a lógica computacional é enviada para nós de cluster (servidor) contendo dados. Essa lógica computacional nada mais é do que uma versão compilada de um programa escrito em uma linguagem de alto nível, como Java. Tal programa processa dados armazenados em Hadoop HDFS.
Você sabe? O cluster de computadores consiste em um conjunto de múltiplas unidades de processamento (disco de armazenamento + processador) que estão conectadas entre si e atuam como um único sistema.
Ecossistema e componentes do Hadoop
O diagrama abaixo mostra vários componentes do ecossistema Hadoop-
Apache Hadoop consiste em dois subprojetos –
- Hadoop MapReduce: MapReduce é um modelo computacional e estrutura de software para escrever aplicativos executados em Hadoop. Esses programas MapReduce são capazes de processar enormes dados em paralelo em grandes clusters de nós de computação.
- HDFS (Sistema de arquivos distribuídos Hadoop): O HDFS cuida da parte de armazenamento dos aplicativos Hadoop. Os aplicativos MapReduce consomem dados do HDFS. O HDFS cria múltiplas réplicas de blocos de dados e os distribui em nós de computação em um cluster. Esta distribuição permite cálculos confiáveis e extremamente rápidos.
Embora o Hadoop seja mais conhecido pelo MapReduce e seu sistema de arquivos distribuído – HDFS, o termo também é usado para uma família de projetos relacionados que se enquadram na computação distribuída e no processamento de dados em grande escala. Outros projetos relacionados ao Hadoop em apache incluir são Hive, HBase, Mahout, Sqoop, Flume e ZooKeeper.
Hadoop Archiarquitetura
Hadoop tem um mestre-escravo Archiarquitetura para armazenamento de dados e processamento distribuído de dados usando MapaReduzir e métodos HDFS.
NomeNode:
NameNode representou todos os arquivos e diretórios usados no namespace
Nó de dados:
DataNode ajuda você a gerenciar o estado de um nó HDFS e permite interagir com os blocos
MestreNode:
O nó mestre permite realizar processamento paralelo de dados usando Hadoop MapReduce.
Nó escravo:
Os nós escravos são as máquinas adicionais no cluster Hadoop que permitem armazenar dados para realizar cálculos complexos. Além disso, todo o nó escravo vem com Task Tracker e um DataNode. Isso permite sincronizar os processos com NameNode e Job Tracker respectivamente.
No Hadoop, o sistema mestre ou escravo pode ser configurado na nuvem ou no local
Recursos do 'Hadoop'
• Adequado para análise de Big Data
Como o Big Data tende a ser distribuído e de natureza não estruturada, os clusters HADOOP são mais adequados para análise de Big Data. Como é a lógica de processamento (e não os dados reais) que flui para os nós de computação, menos largura de banda da rede é consumida. Este conceito é denominado como conceito de localidade de dados o que ajuda a aumentar a eficiência dos aplicativos baseados em Hadoop.
• Escalabilidade
Os clusters HADOOP podem ser facilmente dimensionados em qualquer extensão, adicionando nós de cluster adicionais e, assim, permitindo o crescimento do Big Data. Além disso, o dimensionamento não requer modificações na lógica do aplicativo.
• Tolerância ao erro
O ecossistema HADOOP permite replicar os dados de entrada para outros nós do cluster. Dessa forma, no caso de falha de um nó do cluster, o processamento de dados ainda poderá prosseguir usando dados armazenados em outro nó do cluster.
Topologia de rede no Hadoop
A topologia (arranjo) da rede afeta o desempenho do cluster Hadoop quando o tamanho do cluster Hadoop aumenta. Além do desempenho, também é preciso se preocupar com a alta disponibilidade e tratamento de falhas. Para alcançar este Hadoop, a formação de cluster faz uso da topologia de rede.
Normalmente, a largura de banda da rede é um fator importante a ser considerado ao formar qualquer rede. Porém, como medir a largura de banda pode ser difícil, no Hadoop, uma rede é representada como uma árvore e a distância entre os nós desta árvore (número de saltos) é considerada um fator importante na formação do cluster Hadoop. Aqui, a distância entre dois nós é igual à soma da distância ao ancestral comum mais próximo.
O cluster Hadoop consiste em um data center, o rack e o nó que realmente executa os trabalhos. Aqui, o data center consiste em racks e o rack consiste em nós. A largura de banda da rede disponível para processos varia dependendo da localização dos processos. Ou seja, a largura de banda disponível torna-se menor à medida que nos afastamos de-
- Processos no mesmo nó
- Nós diferentes no mesmo rack
- Nós em diferentes racks do mesmo data center
- Nós em diferentes data centers