O Hive é uma ferramenta de Big Data Analytics amplamente usada nos negócios e é um lugar fantástico para começar se você é novo em Big Data. Esta lição do Apache Hive aborda os fundamentos do Apache Hive, por que um hive é necessário, seus recursos e tudo mais que você deve saber.
Vamos primeiro entender a estrutura do Hadoop sobre a qual o Apache Hive é construído.
Apache Hadoop
Apache Hadoop é um software gratuito e de código aberto plataforma para armazenar e processar grandes conjuntos de dados que variam em tamanho de gigabytes a petabytes. O Hadoop permite agrupar vários computadores para analisar conjuntos de dados enormes em paralelo, em vez de exigir um único computador grande para armazenar e analisar os dados.
MapReduce e Hadoop Distributed File System são dois dos componentes:
- MapaReduzir – MapReduce é uma técnica de programação paralela para lidar com grandes volumes de dados organizados, semiestruturados e não estruturados em clusters de hardware comuns.
- HDFS – HDFS (Hadoop Distributed File System) é um componente da estrutura Hadoop que armazena e processa dados. É um sistema de arquivos tolerante a falhas que é executado em hardware padrão
Diferentes subprojetos (ferramentas) no ecossistema Hadoop, incluindo Sqoop, Pig e Hive, são usados para auxiliar os módulos Hadoop.
- Colméia – Hive é uma estrutura para escrever scripts no estilo SQL que executam cálculos MapReduce.
- Porco – Pig é uma linguagem de programação procedural que pode ser usada para criar um script para processos MapReduce.
- Sqoop – Sqoop é uma ferramenta para importação e exportação de dados entre HDFS e RDBMS.
O que é a Colmeia Apache?
Apache Hive é um software de código aberto data warehouse programa para ler, escrever e gerenciar grandes conjuntos de dados armazenados diretamente no Apache Hadoop Distributed File System (HDFS) ou outros sistemas de armazenamento de dados como o Apache HBase.
Os desenvolvedores de SQL podem usar o Hive para criar instruções Hive Query Language (HQL) para consulta e análise de dados que são comparáveis a instruções SQL comuns. Ele foi criado para tornar a programação MapReduce mais fácil, eliminando a necessidade de aprender e escrever código Java longo. Em vez disso, você pode escrever suas consultas em HQL, e o Hive construirá o mapa e reduzirá as funções para você.
A interface semelhante a SQL do Apache Hive tornou-se o Gold Standard para realizar pesquisas ad hoc, resumir e analisar dados do Hadoop. Quando incluído na nuvem redes de computação, essa solução é especialmente econômica e escalável, razão pela qual muitas empresas, incluindo Netflix e Amazon, continuam desenvolvendo e aprimorando o Apache Hive.
HISTÓRIA
Durante seu tempo no Facebook, Joydeep Sen Sarma e Ashish Thusoo co-criaram o Apache Hive. Ambos reconheceram que, para tirar o máximo proveito do Hadoop, eles teriam que criar algumas tarefas Java Map-Reduce bastante complicadas. Eles reconheceram que não seriam capazes de educar suas equipes analíticas e de engenharia em rápida expansão sobre as habilidades necessárias para alavancar o Hadoop em toda a empresa. Engenheiros e analistas frequentemente utilizavam o SQL como interface de usuário.
Embora o SQL pudesse atender à maioria das necessidades de análise, os desenvolvedores também pretendiam incorporar a programabilidade do Hadoop. O Apache Hive surgiu desses dois objetivos: uma linguagem declarativa baseada em SQL que também permitia aos desenvolvedores trazer seus próprios scripts e programas quando o SQL não era suficiente.
Também foi desenvolvido para armazenar metadados centralizados (baseados em Hadoop) sobre todos os conjuntos de dados da empresa para facilitar a construção de organizações orientadas a dados.
Como funciona o Apache Hive?
Em poucas palavras, o Apache Hive converte um programa de entrada escrito na linguagem HiveQL (semelhante a SQL) em uma ou mais tarefas Java MapReduce, Tez ou Spark. (Todos esses mecanismos de execução são compatíveis com o Hadoop YARN.) Depois disso, o Apache Hive organiza os dados em tabelas para o Hadoop Distributed File System HDFS) e executa as tarefas em um cluster para obter uma resposta.
Data
As tabelas do Apache Hive são organizadas da mesma forma que as tabelas em um banco de dados relacional, com unidades de dados variando em tamanho de maior a menor. Os bancos de dados são compostos de tabelas que são divididas em divisões, que são divididas em buckets. HiveQL (Hive Query Language) é usado para acessar os dados, que podem ser alterados ou anexados. Os dados da tabela são serializados em cada banco de dados e cada tabela tem seu próprio diretório HDFS.
Arquitetura
Agora vamos falar sobre o aspecto mais importante da Hive Architecture. Os componentes do Apache Hive são os seguintes:
Metastore — Mantém informações sobre cada tabela, como sua estrutura e localização. Os metadados da partição também estão incluídos no Hive. Isso permite que o driver acompanhe o progresso de diferentes conjuntos de dados espalhados pelo cluster. Os dados são armazenados em um formato RDBMS convencional. Os metadados do Hive são extremamente importantes para o driver manter o controle dos dados. O servidor de backup duplica os dados regularmente para que possam ser recuperados em caso de perda de dados.
Dirigir – As instruções HiveQL são recebidas por um driver, que funciona como um controlador. Ao estabelecer sessões, o driver inicia a execução da instrução. Ele acompanha a vida útil e o progresso do executivo. Durante a execução de uma instrução HiveQL, o driver salva os metadados necessários. Ele também serve como um ponto de coleta de dados ou resultados de consulta após o processo Reduzir.
Compilador – Executa a compilação da consulta HiveQL. A consulta agora é convertida em um plano de execução. As tarefas estão listadas no plano. Também inclui as etapas que o MapReduce deve seguir para obter o resultado conforme traduzido pela consulta. A consulta é convertida em uma Árvore de Sintaxe Abstrata pelo compilador do Hive (AST). Converte o AST em um gráfico acíclico direcionado após a verificação de compatibilidade e falhas em tempo de compilação (DAG).
Optimizer – Otimiza o DAG realizando diferentes alterações no plano de execução. Ele combina transformações para maior eficiência, como transformar um pipeline de junções em uma única junção. Para melhorar a velocidade, o otimizador pode dividir as atividades, como aplicar uma transformação aos dados antes de realizar uma operação de redução.
Executor – O executor executa as tarefas quando a compilação e a otimização são concluídas. Os trabalhos são canalizados pelo Executor.
CLI, interface do usuário e servidor Thrift – A interface de linha de comando (CLI) é uma interface de usuário que permite que um usuário externo se comunique com o Hive. O servidor thrift do Hive, semelhante aos protocolos JDBC ou ODBC, permite que clientes externos se comuniquem com o Hive por meio de uma rede.
Segurança
O Apache Hive é integrado à segurança do Hadoop, que usa Kerberos para autenticação mútua cliente-servidor. O HDFS determina permissões para arquivos recém-gerados no Apache Hive, permitindo que você aprove pelo usuário, grupo e outros.
Características chave
- O Hive suporta tabelas externas, que permitem processar dados sem armazená-los no HDFS.
- Também permite a segmentação de dados no nível da tabela para aumentar a velocidade.
- O Apache Hive atende perfeitamente à necessidade de interface de baixo nível do Hadoop.
- O Hive facilita a sumarização, consulta e análise de dados.
- O HiveQL não requer nenhuma habilidade de programação; uma compreensão simples de consultas SQL é suficiente.
- Também podemos usar o Hive para realizar consultas ad-hoc para análise de dados.
- É escalável, familiar e adaptável.
- O HiveQL não requer nenhuma habilidade de programação; uma compreensão simples de consultas SQL é suficiente.
Benefícios
O Apache Hive permite relatórios de final de dia, avaliações de transações diárias, pesquisas ad-hoc e análise de dados. As informações abrangentes fornecidas pelo Apache Hive oferecem vantagens competitivas significativas e facilitam a resposta às demandas do mercado.
Aqui estão alguns dos benefícios de ter essas informações prontamente disponíveis:
- FÁCIL DE USAR – Com sua linguagem semelhante a SQL, a consulta de dados é simples de entender.
- Inserção de dados acelerada — Como o Apache Hive lê o esquema sem verificar o tipo de tabela ou a definição do esquema, os dados não precisam ser lidos, analisados e serializados em disco no formato interno do banco de dados. Em contraste, em um banco de dados convencional, os dados devem ser validados cada vez que são adicionados.
- Escalabilidade, flexibilidade e custo-benefício superiores – Como os dados são armazenados no HDFS, o Apache Hive pode conter 100 petabytes de dados, tornando-o uma opção muito mais escalável do que um banco de dados típico. O Apache Hive, como um serviço Hadoop baseado em nuvem, permite que os clientes ativem e desativem rapidamente os servidores virtuais para atender às mudanças nas cargas de trabalho.
- Extensa capacidade de trabalho – Grandes conjuntos de dados podem lidar com até 100,000 consultas por hora.
Limitações
- Em geral, as consultas do Apache Hive têm latência muito alta.
- O suporte a subconsultas é limitado.
- Consultas em tempo real e alterações em nível de linha não estão disponíveis no Apache Hive.
- Não há suporte para visualizações materializadas.
- Na colmeia, as ações de atualização e exclusão não são suportadas.
- Não se destina a OLTP (processo de transição online).
Introdução ao Apache Hive
O Apache Hive é um forte parceiro do Hadoop que simplifica e agiliza seus fluxos de trabalho. Para tirar o máximo proveito do Apache Hive, a integração perfeita é essencial. O primeiro passo é ir para o site do Network Development Group.
1. Hive de instalação de uma versão estável
Comece baixando a versão estável mais recente do Hive de um dos espelhos de download do Apache (consulte Lançamentos do Hive). O tarball deve então ser descompactado. Isso criará uma subpasta chamada hive-xyz (onde xyz é o número da versão):
Configure a variável de ambiente HIVE_HOME para apontar para o diretório de instalação:
Por fim, adicione $HIVE_HOME/bin ao seu PATH
:
2. Colmeia Executando
O Hive usa o Hadoop, então:
- você deve ter o Hadoop em seu caminho OU
3. Operação DLL
Criando Tabela Hive
gera uma tabela chamada pokes com duas colunas, sendo a primeira um inteiro e a segunda uma string.
Navegando pelas tabelas
Listando todas as tabelas
Alterando e descartando tabelas
Os nomes das tabelas podem ser alterados e as colunas podem ser adicionadas ou substituídas:
Vale a pena notar que REPLACE COLUMNS substitui todas as colunas existentes, alterando apenas a estrutura da tabela e não os dados. Um SerDe nativo deve ser usado na tabela. REPLACE COLUMNS também pode ser usado para remover colunas do esquema de uma tabela:
Descartando tabelas
Existem muitas operações e recursos adicionais no Apache Hive que você pode conhecer visitando o site oficial.
Conclusão
A definição do Hive é uma interface de programa de dados para consulta e análise de grandes conjuntos de dados construídos sobre o Apache Hadoop. Os profissionais o escolhem em vez de outros programas, ferramentas e softwares, pois ele é projetado principalmente para dados extensivos do Hive e é simples de usar.
Espero que este tutorial ajude você a iniciar com o Apache Hive e tornar seus fluxos de trabalho mais eficientes. Deixe-nos saber nos comentários.
Deixe um comentário