Em nosso blog anterior, discutimos a Introdução ao Hadoop em detalhe. Agora, neste blog, vamos responder o que é o Ecossistema Hadoop e quais são as funções dos Componentes Hadoop.
Neste tutorial de componentes do Hadoop, discutiremos diferentes componentes do ecossistema da família Hadoop, como HDFS, MapReduce, YARN, Hive, HBase, Pig, Zookeeper etc.
Todos esses Componentes do Ecossistema Hadoop são discutidos juntamente com seus recursos e responsabilidades.
Tutorial do ecossistema Hadoop
Apache Hadoop é a ferramenta mais poderosa de Big Data. O ecossistema Hadoop gira em torno de três componentes principais:HDFS, MapReduce e YARN. Além desses componentes do Hadoop, existem alguns outros componentes do ecossistema do Hadoop também, que desempenham um papel importante para impulsionar as funcionalidades do Hadoop.
vamos agora entender os diferentes componentes do Hadoop em detalhes.
a. HDFS
Sistema de arquivos distribuídos Hadoop (HDFS) é o sistema de armazenamento primário do Hadoop. O HDFS armazena arquivos muito grandes executados em um cluster de hardware comum.
Segue o princípio de armazenar um número menor de arquivos grandes em vez do grande número de arquivos pequenos. O HDFS armazena dados de forma confiável mesmo em caso de falha de hardware. Portanto, ele fornece acesso de alta taxa de transferência ao aplicativo acessando em paralelo.
Componentes do HDFS:
- NameNode – Funciona como mestre no cluster Hadoop. Namenode armazena metadados, ou seja, número de blocos, réplicas e outros detalhes. Os metadados estão presentes na memória do mestre. NameNode atribui tarefas ao nó escravo. Ele deve ser implantado em hardware confiável, pois é a peça central do HDFS.
- DataNode – Funciona como escravo no cluster Hadoop. No Hadoop HDFS, o DataNode é responsável por armazenar dados reais no HDFS. O DataNode também executa a operação de leitura e gravação conforme solicitação dos clientes. Os DataNodes também podem ser implantados em hardware comum.
b. MapReduce
Hadoop MapReduce é a camada de processamento de dados do Hadoop. Ele processa grandes dados estruturados e não estruturados armazenados no HDFS. O MapReduce também processa uma enorme quantidade de dados em paralelo.
Ele faz isso dividindo o trabalho (trabalho enviado) em um conjunto de tarefas independentes (subtrabalho). No Hadoop, o MapReduce funciona dividindo o processamento em fases:Mapear e Reduzir.
- Mapa – É a primeira fase do processamento, onde especificamos todo o código lógico complexo.
- Reduzir – É a segunda fase do processamento. Aqui especificamos o processamento leve, como agregação/soma.
c. FIO
O Hadoop YARN fornece o gerenciamento de recursos. É o sistema operacional do Hadoop. Assim, é responsável por gerenciar e monitorar cargas de trabalho, implementando controles de segurança. É uma plataforma central para fornecer ferramentas de governança de dados em clusters Hadoop.
O YARN permite vários mecanismos de processamento de dados, como streaming em tempo real, processamento em lote, etc.
Componentes do YARN:
- Gerente de recursos – É um componente de nível de cluster e é executado na máquina mestre. Por isso, ele gerencia recursos e agenda aplicativos executados na parte superior do YARN. Ele tem dois componentes:Agendador e Gerenciador de Aplicativos.
- Gerenciador de nós – É um componente de nível de nó. Ele é executado em cada máquina escrava. Ele se comunica continuamente com o Resource Manager para se manter atualizado
d. Colmeia
Apache Hive é um sistema de data warehouse de código aberto usado para consultar e analisar grandes conjuntos de dados armazenados em arquivos Hadoop. Processa dados estruturados e semiestruturados no Hadoop.
O Hive também oferece suporte à análise de grandes conjuntos de dados armazenados no HDFS e também no sistema de arquivos do Amazon S3 é compatível com o Hive. O Hive usa a linguagem chamada HiveQL (HQL), que é semelhante ao SQL. O HiveQL traduz automaticamente consultas semelhantes a SQL em trabalhos MapReduce.
e. Porco
É uma plataforma de linguagem de alto nível desenvolvida para executar consultas em grandes conjuntos de dados armazenados no Hadoop HDFS. PigLatin é uma linguagem usada no porco que é muito semelhante ao SQL.
O Pig carrega os dados, aplica os filtros necessários e despeja os dados no formato necessário. O Pig também converte toda a operação em tarefas Map e Reduce que são efetivamente processadas no Hadoop.
Características do porco:
- Extensível – Os usuários do Pig podem criar funções personalizadas para atender aos seus requisitos de processamento específicos.
- Otimização automática – Já que o Pig permite que o sistema otimize automaticamente. Assim, o usuário pode se concentrar na semântica.
- Lida com todos os tipos de dados – O Pig analisa tanto estruturado quanto não estruturado.
f. HBase
Apache HBase é um banco de dados NoSQL executado no topo do Hadoop. É um banco de dados que armazena dados estruturados em tabelas que podem ter bilhões de linhas e milhões de colunas. O HBase também fornece acesso em tempo real para ler ou gravar dados no HDFS.
Componentes do HBase:
- HBase Master – Não faz parte do armazenamento de dados real. Mas realiza administração (interface para criação, atualização e exclusão de tabelas.).
- Servidor de região – É o nó do trabalhador. Ele lida com leitura, gravação, atualizações e solicitações de exclusão de clientes. O servidor de região também processa execuções em cada nó no cluster Hadoop.
g. Catálogo HC
É a camada de gerenciamento de tabelas e armazenamento na parte superior do Apache Hadoop. HCatalog é um componente principal do Hive. Assim, permite que o usuário armazene seus dados em qualquer formato e estrutura. Ele também oferece suporte a diferentes componentes do Hadoop para ler e gravar facilmente dados do cluster.
Vantagens do HCatalog:
- Forneça visibilidade para ferramentas de limpeza e arquivamento de dados.
- Com a abstração da tabela, o HCatalog libera o usuário da sobrecarga de armazenamento de dados.
- Ativa notificações de disponibilidade de dados.
eu. Avro
É um projeto de código aberto que fornece serviços de serialização e troca de dados para o Hadoop. Usando a serialização, os programas de serviço podem serializar dados em arquivos ou mensagens.
Ele também armazena a definição de dados e os dados juntos em uma mensagem ou arquivo. Portanto, isso torna mais fácil para os programas entenderem dinamicamente as informações armazenadas no arquivo ou mensagem Avro.
A Avro fornece:
- Arquivo de contêiner, para armazenar dados persistentes.
- Chamada de procedimento remoto.
- Estruturas de dados ricas.
- Formato de dados binários, rápido e compacto.
j. Economia
Apache Thrift é uma estrutura de software que permite o desenvolvimento escalável de serviços entre linguagens. Thrift também é usado para comunicação RPC. O Apache Hadoop faz muitas chamadas RPC, então existe a possibilidade de usar o Thrift para desempenho.
k. Perfuração
A broca é usada para processamento de dados em grande escala. O projeto do drill deve ser dimensionado para vários milhares de nós e consultar petabytes de dados. Também é um mecanismo de consulta distribuída de baixa latência para conjuntos de dados de grande escala.
O drill também é o primeiro mecanismo de consulta SQL distribuído que possui um modelo sem esquema.
Características da perfuração :
- Perfurar metadados descentralizados – O Drill não possui requisitos de metadados centralizados. Os usuários de drill não precisam criar e gerenciar tabelas em metadados para consultar dados.
- Flexibilidade – O Drill fornece modelo de dados colunar hierárquico. Ele pode representar dados complexos e altamente dinâmicos e também permitir um processamento eficiente.
- Descoberta de esquema dinâmico – Para iniciar o processo de execução da consulta, o Drill não requer nenhuma especificação de tipo de dados. Em vez disso, o drill começa a processar os dados em unidades chamadas de lotes de registros. Ele também descobre o esquema dinamicamente durante o processamento.
l. Mahout
É uma estrutura de código aberto usada para criar algoritmos de aprendizado de máquina escaláveis. Uma vez que armazenamos dados no HDFS, a mahout fornece as ferramentas de ciência de dados para encontrar automaticamente padrões significativos nesses conjuntos de Big Data.
m. Sqoop
É usado principalmente para importar e exportar dados. Assim, ele importa dados de fontes externas para componentes Hadoop relacionados, como HDFS, HBase ou Hive. Ele também exporta dados do Hadoop para outras fontes externas. Sqoop trabalha com bancos de dados relacionais como Teradata, Netezza, Oracle, MySQL.
n. Calha
O Flume coleta, agrega e move com eficiência uma grande quantidade de dados de sua origem e os envia de volta ao HDFS. Possui uma arquitetura muito simples e flexível baseada em fluxos de dados de streaming. Flume é tolerante a falhas, também um mecanismo confiável.
O Flume também permite o fluxo de dados da fonte para o ambiente Hadoop. Ele usa um modelo de dados extensível simples que permite o aplicativo analítico online. Portanto, usando o Flume, podemos obter os dados de vários servidores imediatamente no Hadoop.
o. Ambari
É uma plataforma de gerenciamento de código aberto. É uma plataforma para provisionamento, gerenciamento, monitoramento e segurança do cluster Apache Hadoop. O gerenciamento do Hadoop fica mais simples porque o Ambari fornece uma plataforma consistente e segura para controle operacional.
Benefícios do Ambari:
- Instalação, configuração e gerenciamento simplificados – Ele pode criar e gerenciar clusters com facilidade e eficiência em escala.
- Configuração de segurança centralizada – O Ambari configura a segurança do cluster em toda a plataforma. Também reduz a complexidade de administração.
- Altamente extensível e personalizável – O Ambari é altamente extensível para gerenciar serviços personalizados.
- Visibilidade total da integridade do cluster – O Ambari garante que o cluster esteja íntegro e disponível com uma abordagem holística de monitoramento.
pág. Zookeeper
O Zookeeper no Hadoop é um serviço centralizado. Ele mantém informações de configuração, nomenclatura e fornece sincronização distribuída. Também oferece serviços de grupo. O Zookeeper também gerencia e coordena um grande cluster de máquinas.
Benefícios do Zookeeper:
- Rápido – O zookeeper é rápido com cargas de trabalho em que as leituras de dados são mais comuns do que as gravações. A proporção ideal de leitura/gravação é 10:1.
- Pedidos – O zookeeper mantém um registro de todas as transações, que também pode ser usado para transações de alto nível
q. Oi
É um sistema de agendador de fluxo de trabalho para gerenciar tarefas do Apache Hadoop. Ele combina vários trabalhos sequencialmente em uma unidade lógica de trabalho.
Portanto, a estrutura Oozie é totalmente integrada à pilha Apache Hadoop, YARN como um centro de arquitetura. Ele também suporta trabalhos do Hadoop para Apache MapReduce, Pig, Hive e Sqoop.
Oozie é escalável e também muito flexível. Pode-se facilmente iniciar, parar, suspender e executar novamente os trabalhos. Portanto, o Oozie facilita muito a reexecução de fluxos de trabalho com falha. Também é possível pular um nó específico com falha.
Existem dois tipos básicos de trabalhos Oozie:
- Fluxo de trabalho Oozie – É para armazenar e executar fluxos de trabalho compostos de tarefas do Hadoop, por exemplo, MapReduce, Pig, Hive.
- Coordenador Oozie – Ele executa trabalhos de fluxo de trabalho com base em agendamentos predefinidos e disponibilidade de dados.
Conclusão
Portanto, o Hadoop Ecosystem fornece diferentes componentes que o tornam tão popular. Devido a esses componentes do Hadoop, várias funções de trabalho do Hadoop estão disponíveis agora.
Espero que este tutorial do Ecossistema Hadoop ajude muito a entender a família Hadoop e suas funções. Se você encontrar alguma dúvida, por favor, compartilhe conosco na caixa de comentários.