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.