Ecossistema Hadoop | Digital Innovation One
Alfredo Neto15/09/2021 13:29
Visão geral: Apache Hadoop é uma estrutura de código aberto destinada a tornar mais fácil a interação com big data . No entanto, para aqueles que não estão familiarizados com essa tecnologia, surge uma pergunta: o que é big data? Big data é um termo dado aos conjuntos de dados que não podem ser processados ​​de forma eficiente com a ajuda de uma metodologia tradicional como o RDBMS. O Hadoop conquistou seu lugar nas indústrias e empresas que precisam trabalhar em grandes conjuntos de dados que são confidenciais e precisam de tratamento eficiente. Hadoop é uma estrutura que permite o processamento de grandes conjuntos de dados que residem na forma de clusters. Por ser um framework, o Hadoop é composto por vários módulos que são suportados por um grande ecossistema de tecnologias.
Introdução: Hadoop Ecosystem é uma plataforma ou suíte que fornece vários serviços para resolver os problemas de big data. Inclui projetos Apache e várias ferramentas e soluções comerciais. Existem quatro elementos principais do Hadoop, ou seja , HDFS, MapReduce, YARN e Hadoop Common . A maioria das ferramentas ou soluções é usada para complementar ou dar suporte a esses elementos principais. Todas essas ferramentas trabalham coletivamente para fornecer serviços como absorção, análise, armazenamento e manutenção de dados etc.
A seguir estão os componentes que formam coletivamente um ecossistema Hadoop:
YARN: Mais um negociador de recursos
MapReduce: Processamento de dados baseado em programação
Spark: processamento de dados In-Memory
PIG, HIVE: processamento baseado em consulta de serviços de dados
HBase: banco de dados NoSQL
Mahout, Spark MLLib: bibliotecas de algoritmos de aprendizado de máquina
Solar, Lucene: Pesquisando e indexando
Zookeeper: Gerenciando cluster
Oozie: Agendamento de trabalho
Observação: além dos componentes mencionados acima, há muitos outros componentes também que fazem parte do ecossistema Hadoop.
Todos esses kits de ferramentas ou componentes giram em torno de um termo, ou seja, Dados . Essa é a beleza do Hadoop, pois ele gira em torno de dados e, portanto, torna sua síntese mais fácil.
HDFS é o componente principal ou principal do ecossistema Hadoop e é responsável por armazenar grandes conjuntos de dados estruturados ou não estruturados em vários nós e, assim, manter os metadados na forma de arquivos de log.
O HDFS consiste em dois componentes principais, ou seja,
Nó de nome
Nó de nome é o nó principal que contém metadados (dados sobre dados) que requerem comparativamente menos recursos do que os nós de dados que armazenam os dados reais. Esses nós de dados são hardware comum no ambiente distribuído. Sem dúvida, tornando o Hadoop econômico.
O HDFS mantém toda a coordenação entre os clusters e o hardware, trabalhando assim no coração do sistema.
Ainda outro negociador de recursos, como o nome indica, YARN é aquele que ajuda a gerenciar os recursos entre os clusters. Resumindo, ele executa o agendamento e a alocação de recursos para o sistema Hadoop.
Consiste em três componentes principais, ou seja,
O gerenciador de recursos tem o privilégio de alocar recursos para os aplicativos em um sistema, enquanto os gerenciadores de nó trabalham na alocação de recursos como CPU, memória, largura de banda por máquina e posteriormente reconhece o gerenciador de recursos. O gerenciador de aplicativos funciona como uma interface entre o gerenciador de recursos e o gerenciador de nós e executa negociações de acordo com os requisitos dos dois.
Ao fazer uso de algoritmos distribuídos e paralelos, MapReduce torna possível transportar a lógica de processamento e ajuda a escrever aplicativos que transformam conjuntos de big data em um gerenciável.
MapReduce usa duas funções, ou seja, Map () e Reduce (), cuja tarefa é:
Map () executa a classificação e filtragem de dados e, portanto, organiza-os na forma de grupo. O mapa gera um resultado com base no par de valores-chave que é posteriormente processado pelo método Reduce ().
Reduce () , como o nome sugere, faz a sumarização agregando os dados mapeados. De forma simples, Reduce () pega a saída gerada por Map () como entrada e combina essas tuplas em um conjunto menor de tuplas.
O Pig foi desenvolvido basicamente pelo Yahoo, que funciona em uma linguagem latina pig, que é uma linguagem baseada em consultas semelhante ao SQL.
É uma plataforma para estruturar o fluxo de dados, processar e analisar grandes conjuntos de dados.
O Pig faz o trabalho de execução dos comandos e, em segundo plano, todas as atividades do MapReduce são realizadas. Após o processamento, o pig armazena o resultado em HDFS.
A linguagem Pig Latin foi especialmente projetada para esta estrutura que roda no Pig Runtime. Exatamente como o Java é executado no JVM .
O Pig ajuda a facilitar a programação e a otimização e, portanto, é um segmento importante do ecossistema Hadoop.
Com a ajuda da metodologia e interface SQL, o HIVE executa a leitura e a gravação de grandes conjuntos de dados. No entanto, sua linguagem de consulta é chamada de HQL (Hive Query Language).
É altamente escalável, pois permite o processamento em tempo real e o processamento em lote. Além disso, todos os tipos de dados SQL são suportados pelo Hive, tornando o processamento da consulta mais fácil.
Semelhante às estruturas de processamento de consulta, HIVE também vem com dois componentes: Drivers JDBC e linha de comando HIVE .
JDBC, juntamente com drivers ODBC, trabalham no estabelecimento das permissões de armazenamento de dados e conexão, enquanto a linha de comando HIVE ajuda no processamento de consultas.
Mahout, permite a Aprendizagem por Máquina para um sistema ou aplicativo. O Aprendizado de Máquina , como o nome sugere, ajuda o sistema a se desenvolver com base em alguns padrões, interação usuário / ambiente ou com base em algoritmos.
Ele fornece várias bibliotecas ou funcionalidades, como filtragem colaborativa, clustering e classificação, que nada mais são do que conceitos de aprendizado de máquina. Ele permite invocar algoritmos conforme nossa necessidade com a ajuda de suas próprias bibliotecas.
É uma plataforma que lida com todas as tarefas de consumo do processo, como processamento em lote, processamento interativo ou iterativo em tempo real, conversões de gráficos e visualização, etc.
Ele consome recursos de memória, portanto, sendo mais rápido do que o anterior em termos de otimização.
O Spark é mais adequado para dados em tempo real, enquanto o Hadoop é mais adequado para dados estruturados ou processamento em lote, portanto, ambos são usados ​​alternadamente na maioria das empresas.
É um banco de dados NoSQL que suporta todos os tipos de dados e, portanto, capaz de lidar com qualquer banco de dados Hadoop. Ele fornece recursos do BigTable do Google, portanto, capaz de trabalhar em conjuntos de Big Data de forma eficaz.
Às vezes, quando precisamos pesquisar ou recuperar as ocorrências de algo pequeno em um banco de dados enorme, a solicitação deve ser processada em um curto espaço de tempo rápido. Nessas ocasiões, o HBase é útil, pois nos dá uma maneira tolerante de armazenar dados limitados
Outros componentes: além de todos estes, existem alguns outros componentes que realizam uma tarefa enorme para tornar o Hadoop capaz de processar grandes conjuntos de dados. Eles são os seguintes:
Solr, Lucene: Estes são os dois serviços que realizam a tarefa de pesquisa e indexação com a ajuda de algumas bibliotecas java, especialmente Lucene é baseado em Java que também permite o mecanismo de verificação ortográfica. No entanto, Lucene é conduzido por Solr.
Zookeeper: Houve um grande problema de gerenciamento de coordenação e sincronização entre os recursos ou os componentes do Hadoop, que frequentemente resultava em inconsistência. O Zookeeper superou todos os problemas executando sincronização, comunicação baseada em intercomponentes, agrupamento e manutenção.
Oozie: O Oozie simplesmente executa a tarefa de um agendador, agendando tarefas e unindo-as como uma única unidade. Existem dois tipos de jobs .ie trabalho de fluxo de trabalho do Oozie e jobs de coordenador do Oozie. O fluxo de trabalho do Oozie são os trabalhos que precisam ser executados de maneira ordenada sequencialmente, enquanto os trabalhos do coordenador do Oozie são aqueles que são acionados quando algum dado ou estímulo externo é fornecido a ele.