Introdução aos componentes do Hadoop

Os componentes do Hadoop são principalmente HDFS, Map Reduce, Yarn. Hoje, estamos vivendo uma era digital, em que a taxa de produção de dados é muito alta, aproximadamente, produzindo 2, 5 quintilhões de dados por dia. Embora a capacidade de armazenamento dos discos esteja aumentando, a taxa de busca não aumentou para esse volume de dados. Para superar isso, precisamos ler os dados paralelamente, para conseguir isso no Hadoop, temos um HDFS (Hadoop Distributed File System), onde os conjuntos de dados são armazenados como blocos no HDFS (para obter mais detalhes, consulte a seção HDFS) para ler dados em paralelo e obter maior taxa de processamento. O processamento de dados é feito para buscar ou prever algumas informações significativas ou para obter algumas tendências ou padrões. O processo MapReduce é usado para efetuar a obtenção das informações desejadas. Mapear e Reduzir são as duas fases diferentes do processamento de dados.

Principais componentes do Hadoop

Os principais componentes do Hadoop estão descritos abaixo:

1. Sistema de arquivos distribuídos do Hadoop (HDFS)

HDFS é a camada de armazenamento do Big Data; é um cluster de muitas máquinas; os dados armazenados podem ser usados ​​para o processamento usando o Hadoop. Depois que os dados são enviados para o HDFS, podemos processá-los a qualquer momento, até o momento em que processamos os dados residem no HDFS até excluirmos os arquivos manualmente. O HDFS armazena os dados como um bloco, o tamanho mínimo do bloco é de 128 MB no Hadoop 2.xe para 1.x, é de 64 MB. O HDFS replica os blocos dos dados disponíveis se os dados forem armazenados em uma máquina e se a máquina falhar, os dados não serão perdidos, mas para evitá-los, os dados são replicados em diferentes máquinas. Por padrão, o fator de replicação é 3 e podemos alterar no HDFS-site.xml ou usando o comando Hadoop fs -strep -w 3 / dir replicando, temos os blocos em máquinas diferentes para alta disponibilidade.
HDFS é uma arquitetura mestre-escravo, é NameNode como mestre e Data Node como escravo. NameNode é a máquina na qual todos os metadados são armazenados de todos os blocos armazenados no DataNode.

2. FIO

O YARN foi introduzido no Hadoop 2.x, antes que o Hadoop tivesse um JobTracker para o gerenciamento de recursos. O Job Tracker era o mestre e tinha um Task Tracker como escravo. O Job Tracker foi o responsável por agendar os trabalhos e alocar recursos. O Rastreador de tarefas costumava cuidar das tarefas Mapear e Reduzir e o status era atualizado periodicamente para o Rastreador de trabalhos. Com um tipo de gerenciador de recursos, ele tinha um limite de escalabilidade e a execução simultânea das tarefas também tinha uma limitação. Esses problemas foram resolvidos no YARN e cuidavam da alocação de recursos e do agendamento de tarefas em um cluster. A execução de um trabalho de Redução de mapa precisa de recursos em um cluster para obter os recursos alocados para o trabalho que o YARN ajuda. YARN determina qual trabalho é feito e qual máquina é feita. Possui todas as informações de núcleos e memória disponíveis no cluster, acompanha o consumo de memória no cluster. Ele interage com o NameNode sobre os dados em que reside para tomar a decisão sobre a alocação de recursos.

3. MapReduce

O ecossistema Hadoop é uma maneira econômica, escalável e flexível de trabalhar com conjuntos de dados tão grandes. O Hadoop é uma estrutura que usa um modelo de programação específico, chamado MapReduce, para dividir tarefas de computação em blocos que podem ser distribuídos em um cluster de máquinas comuns usando o Hadoop Distributed Filesystem (HDFS).

MapReduce é um mapa de duas tarefas diferentes e Reduce, Map precede a fase redutora. Como o nome sugere, a fase Map mapeia os dados em pares de valor-chave, como todos sabemos que o Hadoop utiliza valores-chave para processamento. Fase redutora é a fase em que temos a lógica real a ser implementada. Além dessas duas fases, ela também implementa a fase aleatória e de classificação.

1. Mapeador

Mapeador é a classe em que o arquivo de entrada é convertido em chaves e valores emparelhados para processamento adicional. Ao ler os dados, eles são lidos nos valores da chave apenas onde a chave é o deslocamento do bit e o valor é o registro inteiro.

Por exemplo, temos um arquivo Diary.txt em que temos duas linhas escritas, ou seja, dois registros.

É um dia maravilhoso que devemos aproveitar aqui, as compensações para 't' são 0 e para 'w' são 33 (espaços em branco também são considerados como caracteres). Portanto, o mapeador lerá os dados como um par de valores-chave, como (chave, valor), (0, este é um dia maravilhoso), (33, devemos aproveitar)

2. Redutor

Redutor é a classe que aceita chaves e valores da saída da fase dos mapeadores. Chaves e valores gerados a partir do mapeador são aceitos como entrada no redutor para processamento adicional. O redutor aceita dados de vários mapeadores. O redutor agrega esses dados intermediários a um número reduzido de chaves e valores, que é a saída final; veremos isso no exemplo.

3. Driver

Além da classe mapper e reducer, precisamos de mais uma classe que é a classe Driver. Esse código é necessário para o MapReduce, pois é a ponte entre a estrutura e a lógica implementada. Ele especifica a configuração, o caminho dos dados de entrada, o caminho do armazenamento de saída e, mais importante, quais classes de mapeador e redutor precisam ser implementadas, além de muitas outras configurações serem definidas nessa classe. Por exemplo, na classe de driver, podemos especificar o separador para o arquivo de saída, como mostrado na classe de driver do exemplo abaixo.

Exemplo

Considere que temos um conjunto de dados da agência de viagens, agora precisamos calcular, a partir dos dados, quantas pessoas optam por viajar para um destino específico. Para conseguir isso, precisaremos levar o destino como chave e, para a contagem, levaremos o valor como 1. Portanto, na fase do mapeador, mapearemos o destino para o valor 1. Agora, na fase de ordenação e ordenação, depois do mapeador, mapeará todos os valores para uma chave específica. Por exemplo, se tivermos um destino como MAA, mapeamos 1 e também temos 2 ocorrências após o embaralhamento e classificação, obteremos o MAA, (1, 1) onde (1, 1) é o valor. Agora na fase de redutor, já temos uma lógica implementada na fase de redutor para adicionar os valores para obter a contagem total do bilhete reservado para o destino. Este é o fluxo do MapReduce.

Abaixo está a captura de tela do programa implementado para o exemplo acima.

1. Classe de Motorista

2. Classe Mapper

3. Classe Redutora

Executando o Hadoop

Para a Execução do Hadoop, primeiro precisamos criar o jar e, em seguida, podemos executar usando o comando abaixo Hadoop jar eample.jar /input.txt /output.txt

Conclusão

Aqui discutimos os principais componentes do Hadoop, como HDFS, Map Reduce e YARN. É uma estrutura de computação em cluster distribuída que ajuda a armazenar e processar os dados e a fazer as análises necessárias nos dados capturados. O Hadoop é flexível e confiável em termos de dados, à medida que os dados são replicados e escalonáveis, ou seja, podemos adicionar mais máquinas ao cluster para armazenar e processar dados.

Artigos recomendados

Este foi um guia para os componentes do Hadoop. Aqui discutimos os principais componentes do Hadoop com exemplos. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Introdução à arquitetura JDBC
  2. O que é o Hadoop Cluster?
  3. O que é o MapReduce no Hadoop?
  4. O que é Big Data e Hadoop
  5. Comandos do Hadoop fs

Categoria: