Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-05-19 GMT+08:00

Princípios básicos do Hive

O Hive é uma infraestrutura de armazém de dados construída sobre o Hadoop. Ele fornece uma série de ferramentas que podem ser usadas para extrair, transformar e carregar dados (ETL). Hive é um mecanismo que pode armazenar, consultar e analisar dados em massa armazenados no Hadoop. Hive define linguagem de consulta simples como SQL, que é conhecido como HiveQL. Ele permite que um usuário familiarizado com SQL consulte dados. A computação de dados do Hive depende do MapReduce, Spark e Tez.

O novo motor de execução Tez é usado para substituir o MapReduce original, melhorando significativamente o desempenho. O Tez pode converter vários jobs dependentes em um job, portanto, apenas quando a gravação do HDFS for necessária e menos nós de trânsito forem necessários, melhorando significativamente o desempenho dos jobs de DAG.

Hive fornece as seguintes funções:

  • Analisa dados estruturados massivos e resume os resultados da análise.
  • Permite que jobs complexas do MapReduce sejam compilados em linguagens SQL.
  • Suporta formatos flexíveis de armazenamento de dados, incluindo notação de objeto JavaScript (JSON), valores separados por vírgulas (CSV), TextFile, RCFile, SequenceFile e ORC (Optimized Row Columnar).

Estrutura do sistema do Hive:

  • Interface de usuário: três interfaces de usuário estão disponíveis, ou seja, CLI, Cliente e WUI. A CLI é a interface de usuário mais usada. Uma transcrição do Hive é iniciada quando a CLI é iniciada. Cliente refere-se a um cliente Hive, e um usuário cliente se conecta ao Servidor Hive. Ao entrar no modo cliente, você precisa especificar o nó em que o Servidor Hive reside e iniciar o Servidor Hive nesse nó. A IU da Web é usada para acessar o Hive através de um navegador. O MRS pode acessar o Hive somente no modo de cliente. Para obter detalhes, consulte Uso do Hive a partir rascunho. Para obter detalhes sobre como desenvolver aplicação do Hive, consulte Desenvolvimento de aplicação do Hive.
  • Armazenamento de metadados: o Hive armazena metadados em bancos de dados, por exemplo, MySQL e Derby. Metadados no Hive incluem um nome de tabela, colunas de tabela e partições e suas propriedades, propriedades de tabela (indicando se uma tabela é uma tabela externa) e o diretório onde os dados da tabela são armazenados.

Estrutura do Hive

O Hive é um processo de serviço de instância única que fornece serviços traduzindo o HQL em jobs de MapReduce relacionados ou operações de HDFS. Figura 1 mostra como o Hive está conectado a outros componentes.

Figura 1 Estrutura do Hive
Tabela 1 Descrição do módulo

Módulo

Descrição

HiveServer

Vários HiveServers podem ser implantados em um cluster para compartilhar cargas. O HiveServer fornece serviços de banco de dados do Hive externamente, converte instruções HQL em tarefas do YARN ou operações do HDFS para concluir a extração, conversão e análise de dados.

MetaStore

  • Vários MetaStores podem ser implantados em um cluster para compartilhar cargas. O MetaStore fornece serviços de metadados do Hive, além de ler, gravar, manter e modificar a estrutura e as propriedades das tabelas do Hive.
  • MetaStore fornece APIs Thrift para HiveServer, Spark, WebHCat e outros clientes de MetaStore para acessar e operar metadados.

WebHCat

Vários WebHCats podem ser implantados em um cluster para compartilhar cargas. O WebHCat fornece APIs REST e executa os comandos do Hive por meio das APIs REST para enviar jobs do MapReduce.

Cliente do Hive

O cliente do Hive inclui a interface de linha de comando (CLI) homem-máquina Beeline, unidade JDBC para aplicações JDBC, driver Python para aplicações Python e arquivos JAR HCatalog para MapReduce.

Cluster do ZooKeeper

Como um nó temporário, o ZooKeeper registra a lista de endereços IP de cada instância do HiveServer. O driver do cliente se conecta a ZooKeeper para obter a lista e seleciona instâncias de HiveServer correspondentes com base no mecanismo de roteamento.

Cluster do HDFS/HBase

O cluster do HDFS armazena os dados da tabela do Hive.

Cluster do MapReduce/YARN

Fornece serviços de computação distribuída. A maioria das operações de dados do Hive depende do MapReduce. A principal função do HiveServer é traduzir instruções HQL em jobs do MapReduce para processar dados massivos.

HCatalog é construído no Hive Metastore e incorpora a capacidade DDL do Hive. HCatalog também é uma tabela baseada em Hadoop e camada de gerenciamento de armazenamento que permite leitura/gravação de dados conveniente em tabelas de HDFS usando diferentes ferramentas de processamento de dados, como MapReduce e Pig. Além disso, o HCatalog também fornece APIs de leitura/gravação para essas ferramentas e usa uma CLI do Hive para publicar comandos para definir dados e consultar metadados. Depois de encapsular esses comandos, o WebHCat Server pode fornecer APIs RESTful, conforme mostrado em Figura 2.

Figura 2 Arquitetura lógica de WebHCat

Princípios

O Hive funciona como um armazém de dados baseado na arquitetura HDFS e MapReduce e converte instruções HQL em jobs do MapReduce ou operações HDFS. Para obter detalhes sobre o Hive e o HQL, consulte Manual de linguagem HiveQL.

Figura 3 mostra a estrutura do Hive.

  • Metastore: lê, grava e atualiza metadados como tabelas, colunas e partições. Sua camada inferior são os bancos de dados relacionais.
  • Driver: gerencia o ciclo de vida da execução da HiveQL e participa de toda a execução do job do Hive.
  • Compiler: traduz instruções HQL em uma série de jobs interdependentes de Map ou Reduce.
  • Optimizer: é classificado em otimizador lógico e otimizador físico para otimizar planos de execução HQL e jobs de MapReduce, respectivamente.
  • Executor: executa jobs Map ou Reduce com base em dependências de job.
  • ThriftServer funciona como os servidores de JDBC, fornece APIs Thrift e integra-se com Hive e outras aplicações.
  • Clients: inclui as APIs da WebUI e JDBC e fornece APIs para acesso do usuário.
Figura 3 Estrutura do Hive