Hadoop - Introdução

Hadoop é uma estrutura de código aberto Apache escrita em java que permite o processamento distribuído de grandes conjuntos de dados em clusters de computadores usando modelos de programação simples. O aplicativo de estrutura Hadoop funciona em um ambiente que fornece armazenamento e computação distribuída em clusters de computadores. O Hadoop foi projetado para ser dimensionado de um único servidor a milhares de máquinas, cada uma oferecendo computação e armazenamento local.

Arquitetura Hadoop

Em sua essência, o Hadoop tem duas camadas principais, a saber -

  • Camada de processamento / computação (MapReduce), e
  • Camada de armazenamento (Hadoop Distributed File System).

MapReduce

MapReduce é um modelo de programação paralela para escrever aplicativos distribuídos desenvolvido pelo Google para processamento eficiente de grandes quantidades de dados (conjuntos de dados de vários terabytes), em grandes clusters (milhares de nós) de hardware comum de maneira confiável e tolerante a falhas. O programa MapReduce é executado no Hadoop, que é uma estrutura de código aberto Apache.

Sistema de arquivos distribuídos Hadoop

O Hadoop Distributed File System (HDFS) é baseado no Google File System (GFS) e fornece um sistema de arquivos distribuído projetado para ser executado em hardware comum. Ele tem muitas semelhanças com os sistemas de arquivos distribuídos existentes. No entanto, as diferenças de outros sistemas de arquivos distribuídos são significativas. É altamente tolerante a falhas e foi projetado para ser implantado em hardware de baixo custo. Ele fornece acesso de alto rendimento aos dados do aplicativo e é adequado para aplicativos com grandes conjuntos de dados.

Além dos dois componentes principais mencionados acima, a estrutura do Hadoop também inclui os dois módulos a seguir -

  • Hadoop Common - Estas são bibliotecas e utilitários Java exigidos por outros módulos Hadoop.

  • Hadoop YARN - Esta é uma estrutura para agendamento de trabalho e gerenciamento de recursos de cluster.

Como o Hadoop funciona?

É muito caro construir servidores maiores com configurações pesadas que lidam com processamento em grande escala, mas como alternativa, você pode unir muitos computadores comuns com uma única CPU, como um único sistema distribuído funcional e, praticamente, as máquinas em cluster podem ler o conjunto de dados em paralelo e fornecem uma taxa de transferência muito maior. Além disso, é mais barato do que um servidor high-end. Portanto, este é o primeiro fator motivacional por trás do uso do Hadoop, que é executado em máquinas em cluster e de baixo custo.

O Hadoop executa código em um cluster de computadores. Este processo inclui as seguintes tarefas principais que o Hadoop executa -

  • Os dados são inicialmente divididos em diretórios e arquivos. Os arquivos são divididos em blocos de tamanho uniforme de 128M e 64M (de preferência 128M).

  • Esses arquivos são então distribuídos em vários nós do cluster para processamento adicional.

  • O HDFS, estando no topo do sistema de arquivos local, supervisiona o processamento.

  • Os blocos são replicados para lidar com falhas de hardware.

  • Verificar se o código foi executado com sucesso.

  • Executar a classificação que ocorre entre os estágios map e reduzir.

  • Enviando os dados classificados para um determinado computador.

  • Gravando os logs de depuração para cada trabalho.

Vantagens do Hadoop

  • A estrutura do Hadoop permite ao usuário escrever e testar sistemas distribuídos rapidamente. É eficiente e distribui automaticamente os dados e o trabalho entre as máquinas e, por sua vez, utiliza o paralelismo subjacente dos núcleos da CPU.

  • O Hadoop não depende do hardware para fornecer tolerância a falhas e alta disponibilidade (FTHA), em vez disso, a própria biblioteca do Hadoop foi projetada para detectar e tratar falhas na camada do aplicativo.

  • Os servidores podem ser adicionados ou removidos do cluster dinamicamente e o Hadoop continua a operar sem interrupção.

  • Outra grande vantagem do Hadoop é que além de ser open source, é compatível em todas as plataformas por ser baseado em Java.