Compartilhamento de tecnologia

Introdução ao Hive e sua arquitetura

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

O que é colmeia?

  • Um data warehouse baseado em Hadoop, adequado para alguns aplicativos de alta latência (desenvolvimento offline), pode mapear arquivos de dados estruturados e semiestruturados armazenados em arquivos Hadoop em uma tabela de banco de dados e fornecer dados semelhantes a SQL com base na tabela. modelo, chamado Hive Query Language (HQL), para acessar e analisar grandes conjuntos de dados armazenados em arquivos Hadoop;
  • O núcleo do Hive é converter HQL em um programa MapReduce e, em seguida, enviar o programa ao cluster Hadoop para execução;
  • O próprio Hive não armazena nem calcula dados. Ele depende totalmente de HDFS e MapReduce. As tabelas no Hive são tabelas puramente lógicas.

O que é um armazém de dados?

  • O data warehouse em si não “produz” nenhum dado e seus dados vêm de diferentes sistemas externos;
  • Ao mesmo tempo, o próprio data warehouse não precisa “consumir” nenhum dado e os resultados estão abertos a diversas aplicações externas;
  • É por isso que é chamado de “armazém” e não de “fábrica”;

Arquitetura e componentes do Hive

Insira a descrição da imagem aqui

  • Loja Meta: Geralmente armazenados em bancos de dados relacionais como Mysql/derby, os metadados no Hive incluem o nome da tabela, as colunas e partições da tabela e seus atributos, os atributos da tabela (seja uma tabela externa, etc.), o diretório onde estão localizados os dados da tabela, etc.;
  • Motorista : Driver, incluindo analisador de sintaxe, compilador de plano, otimizador e executor. Instruções completas de consulta HQL de análise lexical, análise de sintaxe, compilação, otimização e geração de plano de consulta. O plano de consulta gerado é armazenado no HDFS e posteriormente executado pela chamada do mecanismo de execução;
    • Analisador (Analisador SQL): Converta strings SQL em árvore de sintaxe abstrata AST e execute análise de sintaxe no AST, como se a semântica SQL está correta, se a tabela existe e se os campos existem;
    • Compilador (plano físico): Compilar AST para gerar plano de execução lógica (DAG);
    • Otimizador (Otimizador de Consulta): Otimizar o plano de execução lógica;
    • Execução: Converta o plano de execução lógico em um plano físico executável, que é um programa MapReduce/Spark;

Processo de execução HQL

Insira a descrição da imagem aqui

  1. Faça um pedido: Iniciar uma solicitação de execução da UI para o Driver;
  2. Obtenha o plano de execução: Driver envia solicitação do usuário ao compilador para obter plano de execução;
  3. Obtenha metadados: O compilador obtém metadados relevantes do armazenamento Meta com base na tabela relevante e nas informações de partição na instrução SQL;
  4. Metadados de retorno: O meta store retorna os metadados correspondentes ao compilador;
  5. Plano de execução de retorno: Analise e otimize SQL com base em metadados de tabelas e partições para gerar planos de execução lógica. O plano é um gráfico DAG e cada estágio corresponde a um mapa MapReduce ou operação de redução;
  6. Execute o plano de execução: Enviar o plano de execução para o Execution Engine, que enviará o plano lógico de execução ao Hadoop para execução na forma de MapReduce;
  7. Os resultados de execução são obtidos: O Driver coleta os resultados da execução e os envia para a UI;