1. HDFS
O HDFS é o componente principal do Hadoop. Os arquivos no HDFS são divididos em blocos para armazenamento. O tamanho padrão do bloco é 64 MB . Os blocos são unidades lógicas para armazenamento e processamento de arquivos.
O HDFS é uma estrutura de Mestre e Escravo. Existem várias funções de NameNode, SecondaryNameNode e DataNode.
NameNode : é o nó mestre, gerencia o mapeamento do bloco de dados, lida com as solicitações de leitura e gravação do cliente, configura as políticas de réplica e gerencia os namespaces do HDFS;
SecondaryNameNode : É um backup frio de NameNode, compartilhando a carga de trabalho de NameNode, mesclando fsimage e fsedits e enviando-os para NameNode e sincronizando regularmente arquivos de imagem de metadados e logs de modificação. Quando NameNode falha, o backup torna-se normal.
DataNode : É um nó Escravo, que é responsável por armazenar o bloco de dados enviado pelo cliente, realizar operações de leitura e escrita do bloco de dados e enviar informações de heartbeat para o NameNode regularmente.
Características:
Redundância de dados, tolerância a falhas de hardware, cada bloco de dados possui três backups;
Acesso a dados de streaming, gravação de dados não é fácil de modificar;
Adequado para armazenar arquivos grandes, arquivos pequenos aumentarão a pressão no NameNode.
Adequado para leitura e gravação de dados em lote, com alto throughput;
Não é adequado para aplicativos interativos, baixa latência é difícil de encontrar;
Adequado para escrever uma vez e ler várias vezes , leitura e escrita sequenciais;
A gravação simultânea do mesmo arquivo por vários usuários não é suportada.
2. MapReduce
O princípio de funcionamento do MapReduce pode ser resumido em uma frase: dividir e conquistar, e depois reduzir, ou seja, decompor uma grande tarefa em várias pequenas tarefas (mapear) , executar em paralelo e combinar os resultados (reduzir) .
Todo o processo MapReduce é aproximadamente dividido em Map-->Shuffle (classificação)-->Combine (combinação)-->Reduce.
3. FIO
YARN é o sistema de gerenciamento de recursos no Hadoop 2.0. Sua ideia básica de design é dividir o JobTracker no MRv1 em dois serviços independentes:
O gerente global de recursos ResourceManager é responsável pelo gerenciamento de recursos e alocação de todo o sistema
Cada ApplicationMaster específico do aplicativo é responsável pelo gerenciamento de um único aplicativo.
4. Colmeia
O Hive é um data warehouse construído no Hadoop HDFS. Ele pode mapear arquivos de dados estruturados em uma tabela de banco de dados e fornecer funções de consulta semelhantes a SQL. Sua essência é converter SQL em programas MapReduce.
As tabelas Hive são, na verdade, diretórios/arquivos HDFS.
5. Hbase
é um banco de dados No-SQL líder que armazena dados em HDFS e é um banco de dados orientado a colunas
6. Faísca
É um mecanismo de processamento de dados em larga escala rápido e de uso geral (desenvolvido com base em Scala)
1. spark rdd: conjunto de dados distribuído elástico
2. spark sql: módulo de processamento de dados estruturados no Spark. Use a interface fornecida pelo Spark SQL
3. streaming de faísca: faísca o mecanismo de computação em tempo real
4. spark graphx: banco de dados de gráfico de faísca
5. Spark mLlib: Spark Machine Learning
7. Flink
O Apache Flink é uma estrutura de processamento de fluxo de código aberto para aplicativos de processamento de fluxo distribuídos, de alto desempenho, prontos para uso e precisos