Compreendendo em profundidade
Hadoop
Hadoopé um projeto de código aberto da Apachefundação. É uma estrutura escrita Javaoriginalmente, desenvolvida por Doug Cutting em 2005. Foi criada para oferecer suporte à distribuição Nutchdo mecanismo de busca de texto. Hadoopusa o Google Map Reducee o Google File System Technologies como base.
Recursos do Hadoop
- É otimizado para lidar com grandes quantidades de dados estruturados, semiestruturados e não estruturados usando hardware comum.
- Não compartilhou nada de arquitetura.
- Ele replica seus dados em vários computadores para que, se um deles cair, os dados ainda possam ser processados a partir de outra máquina que armazena sua réplica.
Hadoopé para alta taxa de transferência e não baixa latência. É uma operação em lote que manipula grandes quantidades de dados; portanto, o tempo de resposta não é imediato.
- Complementa o processamento de transações online e o processamento analítico online. No entanto, não é um substituto para um
RDBMS .
- Não é bom quando o trabalho não pode ser paralelo ou quando há dependências nos dados.
- Não é bom para o processamento de arquivos pequenos. Funciona melhor com grandes arquivos de dados e conjuntos de dados.
Versões do Hadoop
Existem duas versões Hadoopdisponíveis:
- Hadoop 1.0
- Hadoop 2.0
Hadoop 1.0
Tem duas partes principais:
1. Estrutura de Armazenamento de Dados
É um sistema de arquivos de uso geral chamado Hadoop Distributed File System ( HDFS).
HDFS é sem esquema
Ele simplesmente armazena arquivos de dados e esses arquivos podem estar em praticamente qualquer formato.
A idéia é armazenar os arquivos o mais próximo possível da sua forma original.
Isso, por sua vez, fornece às unidades de negócios e à organização a flexibilidade e agilidade necessárias, sem se preocupar demais com o que pode implementar.
2. Estrutura de Processamento de Dados
Este é um modelo de programação funcional simples, popularizado inicialmente pelo Google como MapReduce.
Essencialmente, ele usa duas funções: MAPe REDUCEpara processar dados.
Os "Mapeadores" coletam um conjunto de pares de valores-chave e geram dados intermediários (que é outra lista de pares de valores-chave).
Os "Redutores" atuam nessa entrada para produzir os dados de saída.
As duas funções aparentemente funcionam isoladamente, permitindo assim que o processamento seja altamente distribuído de maneira altamente paralela, tolerante a falhas e escalável.
Limitações do Hadoop 1.0
A primeira limitação foi a exigência de MapReduceconhecimento em programação.
Ele suportava apenas o processamento em lote, que embora seja adequado para tarefas como análise de logs, projetos de mineração de dados em larga escala, mas praticamente inadequado para outros tipos de projetos.
Uma das principais limitações foi o fato de Hadoop 1.0estar intimamente associado à computação MapReduce, o que significava que os fornecedores estabelecidos de gerenciamento de dados ficaram com duas opiniões:
Reescreva sua funcionalidade MapReducepara que ela possa ser executada Hadoopou
Extraia HDFSou processe dados fora de Hadoop.
Nenhuma das opções era viável, pois levou a ineficiências do processo causadas pela entrada e saída de dados do Hadoopcluster.
Hadoop 2.0
In Hadoop 2.0,HDFS continua a ser a estrutura de armazenamento de dados.
No entanto, uma estrutura nova e independentes de gestão de recursos chamado Y et Um utro R esource N egotiater ( FIO ) foi adicionado.
Qualquer aplicativo capaz de se dividir em tarefas paralelas é suportado pelo YARN.
O YARN coordena a alocação de subtarefas do aplicativo enviado, melhorando ainda mais a flexibilidade, escalabilidade e eficiência dos aplicativos.
Ele funciona com um Application Master no lugar do Job Tracker , executando aplicativos nos recursos controlados pelo novo Node Manager .
O ApplicationMaster é capaz de executar qualquer aplicativo e não apenas MapReduce.
Isso significa que ele não suporta apenas o processamento em lote, mas também o processamento em tempo real. MapReducenão é mais a única opção de processamento de dados.
Vantagens do Hadoop
Ele armazena dados em sua origem a partir de. Não há estrutura imposta ao digitar ou armazenar dados. HDFSé um esquema menos. Somente mais tarde, quando os dados precisam ser processados, a estrutura é imposta aos dados brutos.
É escalável. Hadooppode armazenar e distribuir conjuntos de dados muito grandes em centenas de servidores baratos que operam em paralelo.
É resistente ao fracasso. Hadoopé tolerância a falhas. Ela pratica a replicação de dados diligentemente, o que significa que sempre que dados são enviados para qualquer nó, os mesmos dados também são replicados para outros nós no cluster, garantindo assim que, em caso de falha do nó, sempre haverá outra cópia dos dados disponíveis para uso.
É flexível. Uma das principais vantagens Hadoopé que ele pode trabalhar com qualquer tipo de dados: estruturado, não estruturado ou semiestruturado. Além disso, o processamento é extremamente rápido Hadoopdevido ao paradigma "mover código para dados".
Ecossistema Hadoop
A seguir estão os componentes do Hadoopecossistema:
HDFS : Hadoopsistema de arquivos distribuídos. Ele simplesmente armazena arquivos de dados o mais próximo possível da forma original.
HBase : É o banco de dados do Hadoop e se compara bem a um RDBMS. Ele suporta armazenamento de dados estruturados para tabelas grandes.
Hive : Permite a análise de grandes conjuntos de dados usando uma linguagem muito semelhante ao padrão ANSI SQL, o que implica que qualquer pessoa familiar SQLdeve poder acessar dados em um Hadoopcluster.
Porco : É uma linguagem de fluxo de dados fácil de entender. Ajuda na análise de grandes conjuntos de dados, o que é bastante adequado Hadoop. Pigscripts são convertidos automaticamente em MapReducetrabalhos pelo Pigintérprete.
ZooKeeper : É um serviço de coordenação para aplicativos distribuídos.
Oozie : É um schedularsistema de fluxo de trabalho para gerenciar Hadooptarefas do Apache .
Mahout : É uma biblioteca de aprendizado de máquina e mineração de dados escalável.
Chukwa : É um sistema de coleta de dados para gerenciar um grande sistema distribuído.
Sqoop : É usado para transferir dados em massa entre Hadoope armazenamentos de dados estruturados, como bancos de dados relacionais.
Ambari : É uma ferramenta baseada na Web para provisionar, gerenciar e monitorar Hadoopclusters.
Colmeia
Hiveé uma ferramenta de infraestrutura de data warehouse para processar dados estruturados Hadoop. Ele reside em cima de Hadoopresumir o Big Data e facilita a consulta e a análise.
Colmeia não é
Um banco de dados relacional
Um design para o Processamento de transações on-line ( OLTP).
Um idioma para consultas em tempo real e atualizações no nível da linha.
Recursos do Hive
Ele armazena o esquema no banco de dados e processa os dados HDFS.
É projetado para OLAP.
Ele fornece uma SQLlinguagem de tipo para consultas chamadas HiveQLou HQL.
É mais familiar, rápido, escalável e extensível.
Arquitetura do Hive
Os seguintes componentes estão contidos na Hive Architecture:
Interface do usuário : Hiveé uma data warehouseinfraestrutura que pode criar interação entre usuário e HDFS. As interfaces de usuário Hivecompatíveis são a interface do usuário da Web do Hive, a linha de comando do Hive e o Hive HD Insight (no Windows Server).
MetaStore : Hiveescolhe o respectivo database serverspara armazenar o esquema ou Metadatade tabelas, bancos de dados, colunas em uma tabela, seus tipos de dados e HDFSmapeamento.
HiveQL Process Engine : HiveQLé semelhante ao SQLpara consultar informações de esquema no Metastore. É uma das substituições da abordagem tradicional para o MapReduceprograma. Em vez de escrever MapReduceem Java, podemos escrever uma consulta para MapReducee processá-lo.
Mecanismo de Exceção : A parte conjunta do HiveQLmecanismo de processo e MapReduceé o HiveMecanismo de Execução. O mecanismo de execução processa a consulta e gera resultados da mesma forma que MapReduce results. Ele usa o sabor de MapReduce.
HDFS ou HBase : Hadoopsistema de arquivos distribuídos ou HBasesão as técnicas de armazenamento de dados para armazenar dados no sistema de arquivos.