Hive - Introdução
O termo 'Big Data' é usado para coleções de grandes conjuntos de dados que incluem grande volume, alta velocidade e uma variedade de dados que aumentam dia a dia. Usando sistemas tradicionais de gerenciamento de dados, é difícil processar Big Data. Portanto, a Apache Software Foundation introduziu uma estrutura chamada Hadoop para resolver os desafios de gerenciamento e processamento de Big Data.
Hadoop
Hadoop é uma estrutura de código aberto para armazenar e processar Big Data em um ambiente distribuído. Ele contém dois módulos, um é MapReduce e outro é Hadoop Distributed File System (HDFS).
MapReduce: É um modelo de programação paralela para processar grandes quantidades de dados estruturados, semiestruturados e não estruturados em grandes clusters de hardware comum.
HDFS:O Hadoop Distributed File System é uma parte da estrutura do Hadoop, usado para armazenar e processar os conjuntos de dados. Ele fornece um sistema de arquivos tolerante a falhas para execução em hardware comum.
O ecossistema Hadoop contém diferentes subprojetos (ferramentas), como Sqoop, Pig e Hive, que são usados para ajudar os módulos do Hadoop.
Sqoop: É usado para importar e exportar dados de e para HDFS e RDBMS.
Pig: É uma plataforma de linguagem procedural usada para desenvolver um script para operações MapReduce.
Hive: É uma plataforma usada para desenvolver scripts do tipo SQL para fazer operações MapReduce.
Note: Existem várias maneiras de executar operações MapReduce:
- A abordagem tradicional usando o programa Java MapReduce para dados estruturados, semiestruturados e não estruturados.
- A abordagem de script para MapReduce para processar dados estruturados e semiestruturados usando Pig.
- O Hive Query Language (HiveQL ou HQL) para MapReduce para processar dados estruturados usando Hive.
O que é Hive
Hive é uma ferramenta de infraestrutura de data warehouse para processar dados estruturados no Hadoop. Ele reside no Hadoop para resumir Big Data e facilita a consulta e a análise.
Inicialmente, o Hive foi desenvolvido pelo Facebook, mais tarde a Apache Software Foundation o adotou e o desenvolveu ainda mais como um código aberto sob o nome de Apache Hive. É usado por diferentes empresas. Por exemplo, a Amazon o usa no Amazon Elastic MapReduce.
Hive não é
- Um banco de dados relacional
- Um design para processamento de transações on-line (OLTP)
- Uma linguagem para consultas em tempo real e atualizações em nível de linha
Características do Hive
- Ele armazena o esquema em um banco de dados e os dados processados no HDFS.
- Ele é projetado para OLAP.
- Ele fornece uma linguagem de tipo SQL para consultas chamadas HiveQL ou HQL.
- É familiar, rápido, escalonável e extensível.
Arquitetura de Hive
O diagrama de componentes a seguir descreve a arquitetura do Hive:
Este diagrama de componentes contém unidades diferentes. A tabela a seguir descreve cada unidade:
Nome da Unidade | Operação |
---|---|
Interface de usuário | Hive é um software de infraestrutura de data warehouse que pode criar interação entre o usuário e o HDFS. As interfaces de usuário que o Hive oferece suporte são Hive Web UI, linha de comando Hive e Hive HD Insight (no servidor Windows). |
Meta Store | O Hive escolhe os respectivos servidores de banco de dados para armazenar o esquema ou metadados de tabelas, bancos de dados, colunas em uma tabela, seus tipos de dados e mapeamento HDFS. |
HiveQL Process Engine | HiveQL é semelhante a SQL para consultar informações de esquema no Metastore. É uma das substituições da abordagem tradicional para o programa MapReduce. Em vez de escrever o programa MapReduce em Java, podemos escrever uma consulta para o trabalho MapReduce e processá-lo. |
Execution Engine | A parte da conjunção do HiveQL process Engine e MapReduce é o Hive Execution Engine. O mecanismo de execução processa a consulta e gera resultados iguais aos resultados do MapReduce. Ele usa o sabor do MapReduce. |
HDFS ou HBASE | O sistema de arquivos distribuídos Hadoop ou HBASE são as técnicas de armazenamento de dados para armazenar dados no sistema de arquivos. |
Trabalho de colmeia
O diagrama a seguir descreve o fluxo de trabalho entre o Hive e o Hadoop.
A tabela a seguir define como o Hive interage com a estrutura do Hadoop:
Etapa No. | Operação |
---|---|
1 | Execute Query A interface do Hive, como Linha de Comando ou IU da Web, envia uma consulta ao Driver (qualquer driver de banco de dados, como JDBC, ODBC, etc.) para execução. |
2 | Get Plan O driver tem a ajuda de um compilador de consulta que analisa a consulta para verificar a sintaxe e o plano da consulta ou os requisitos da consulta. |
3 | Get Metadata O compilador envia uma solicitação de metadados ao Metastore (qualquer banco de dados). |
4 | Send Metadata O Metastore envia metadados como resposta ao compilador. |
5 | Send Plan O compilador verifica o requisito e reenvia o plano ao driver. Até aqui, a análise e compilação de uma consulta estão completas. |
6 | Execute Plan O driver envia o plano de execução para o mecanismo de execução. |
7 | Execute Job Internamente, o processo de execução do trabalho é um trabalho MapReduce. O mecanismo de execução envia o trabalho para JobTracker, que está no nó Nome e atribui esse trabalho ao TaskTracker, que está no nó Dados. Aqui, a consulta executa o trabalho MapReduce. |
7,1 | Metadata Ops Enquanto isso, na execução, o mecanismo de execução pode executar operações de metadados com Metastore. |
8 | Fetch Result O mecanismo de execução recebe os resultados dos nós de dados. |
9 | Send Results O mecanismo de execução envia esses valores resultantes ao driver. |
10 | Send Results O driver envia os resultados para Hive Interfaces. |