O que é o Hive no Hadoop? História e seus componentes
Publicados: 2021-10-07Apache Hive é um sistema de armazenamento de código aberto que é construído sobre o Hadoop. O Hive é usado para consultar e analisar grandes conjuntos de dados armazenados no Hadoop. Ele funciona processando dados estruturados e semiestruturados.
Através deste artigo, vamos falar em detalhes sobre o Hive no Hadoop, sua história, sua importância, arquitetura do Hive, alguns recursos principais, algumas limitações e muito mais!
Índice
O que é Hive?
O Apache Hive é simplesmente um software de data warehouse construído usando o Hadoop como base. Antes do Apache Hive, os engenheiros de Big Data precisavam escrever tarefas complexas de redução de mapa para realizar tarefas de consulta. Com o Hive, por outro lado, as coisas foram drasticamente reduzidas, pois os engenheiros agora só precisam conhecer SQL.
O Hive funciona em uma linguagem conhecida como HiveQL (semelhante ao SQL), tornando mais fácil para os engenheiros que têm um conhecimento prático de SQL. O HiveQL traduz automaticamente suas consultas SQL em tarefas de redução de mapa que o Hadoop pode executar.
Ao fazer isso, o Apache apresenta o conceito de abstração no funcionamento do Hadoop e permite que especialistas em dados lidem com conjuntos de dados complexos sem aprender a linguagem de programação Java para trabalhar com o Hive. O Apache Hive funciona em sua estação de trabalho e converte consultas SQL em tarefas de redução de mapa a serem executadas no cluster Hadoop. O Hive categoriza todos os seus dados em tabelas, fornecendo assim uma estrutura para todos os dados presentes no HDFS.
História do Apache Hive
A equipe de infraestrutura de dados apresentou o Apache Hive no Facebook. É uma das tecnologias que está sendo usada proativamente no Facebook para vários propósitos internos. Ao longo dos anos, o Apache Hive executou milhares de tarefas no cluster com centenas de usuários para uma variedade de aplicativos.
O cluster Hive-Hadoop no Facebook armazena mais de 3 PB de dados brutos. Ele pode carregar 15 TB de dados em tempo real diariamente. A partir daí, o Apache Hive cresceu ainda mais em seus casos de uso e, hoje, é utilizado por gigantes como IBM, Yahoo, Amazon, FINRA, Netflix e outros.
Obtenha sua certificação de ciência de dados online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.
Por que a necessidade do Apache Hive?
Antes de criar o Apache Hive, o Facebook enfrentou muitos desafios, como o tamanho cada vez maior dos dados para analisar e a total inconsistência nesse grande conjunto de dados. Esses desafios tornaram difícil para o Facebook lidar com suas tarefas com uso intensivo de dados sem problemas. As estruturas tradicionais baseadas em RDBMS não foram suficientes para controlar a pressão cada vez maior.
O Facebook introduziu o map-reduce pela primeira vez para superar esses desafios, mas depois o simplificou ainda mais oferecendo o Apache Hive, que funciona no HiveQL.
Eventualmente, o Apache Hive emergiu como o salvador tão necessário e ajudou o Facebook a superar os vários desafios. Agora, usando o Apache Hive, o Facebook conseguiu o seguinte:
- Evolução e flexibilidade do esquema.
- Particionamento e agrupamento de tabelas.
- Definindo tabelas Hive diretamente no HDFS.
- Disponibilidade de drivers ODBC/JDBC.
Em suma, o Apache Hive ajudou os desenvolvedores a economizar muito tempo que, de outra forma, seria necessário para escrever trabalhos complexos de redução de mapa. O Hive traz simplicidade para sumarização, análise, consulta e exploração de dados.
Sendo dependente apenas do SQL, o Apache Hive é uma estrutura rápida e escalável e altamente extensível. Se você entende de consulta básica usando SQL, poderá trabalhar com o Apache Hive rapidamente! Ele também oferece acesso a arquivos em diferentes armazenamentos de dados, como HBase e HDFS.
A arquitetura do Apache Hive
Agora que você entende a importância e o surgimento do Apache Hive, vejamos os principais componentes do Apache Hive. A arquitetura do Apache Hive inclui:
1. Metastore
Isso é usado para armazenar metadados para cada uma das tabelas. Os metadados geralmente consistem no local e no esquema. O metastore também consiste nos metadados da partição, que ajudam os engenheiros a rastrear o progresso de diferentes conjuntos de dados que foram distribuídos pelos clusters. Os dados armazenados aqui estão no formato RDBMS tradicional.
2. Motorista
Driver no Apache Hive é como um controlador responsável por receber as instruções HiveQL. Em seguida, ele inicia a execução dessas instruções criando diferentes sessões. O driver também é responsável por monitorar e gerenciar o ciclo de vida da implementação e seu progresso ao longo do caminho. Os drivers contêm todos os metadados importantes que são gerados quando uma instrução HiveQL é executada. Ele também atua como um ponto de coleta de dados obtidos após a operação map-reduce.
3. Compilador
O compilador é usado para compilar as consultas HiveQL. Ele converte as consultas geradas pelo usuário em um plano de execução infalível que contém todas as tarefas que precisam ser executadas. O plano também inclui todas as etapas e procedimentos necessários para seguir o map-reduce para obter a saída necessária. O compilador Hive converte a consulta de entrada do usuário em AST (Abstract Syntax Tree) para verificar erros de tempo de compilação ou problemas de compatibilidade. O AST é transformado em um gráfico acíclico dirigido (DAG) quando nenhum dos problemas é encontrado.
4. Otimizador
O otimizador faz todas as transformações no plano de execução necessárias para alcançar o DAG otimizado. Ele faz isso agregando todas as transformações juntas, como converter uma matriz de junções individuais em uma única junções – para melhorar o desempenho. Além disso, o otimizador pode dividir diferentes tarefas aplicando uma transformação nos dados antes que a operação reduzida seja executada – novamente, para melhorar o desempenho geral.
5. Executor -
Uma vez que o Apache Hive executou as tarefas de compilação e otimização, o executor realiza as execuções finais. Ele se encarrega de canalizar as tarefas e levá-las à conclusão.
6. CLI, IU e Servidor Thrift
A interface de linha de comando (CLI) é usada para fornecer ao usuário externo uma interface de usuário para interagir com os diferentes recursos do Apache Hive. CLI é o que compõe a interface do usuário do Hive para os usuários finais. Por outro lado, o servidor Thrift permite que clientes externos interajam com o Hive em uma rede, semelhante aos protocolos ODBC ou JDBC.
Principais recursos do Apache Hive
Como mencionado anteriormente, o Apache Hive trouxe uma mudança muito necessária na maneira como os engenheiros trabalhavam em tarefas de dados. O Java não era mais a linguagem principal, e os desenvolvedores podiam trabalhar apenas usando SQL. Além disso, existem vários outros recursos essenciais do Hive, como:
- O Apache Hive oferece sumarização, análise e consulta de dados de uma maneira muito mais simplificada.
- O Hive suporta tabelas internas e externas, tornando possível trabalhar com dados externos sem trazê-los para o H DFS.
- O Apache Hive funciona perfeitamente bem para o requisito de interface de baixo nível do Hadoop.
- Ao oferecer suporte ao particionamento de dados no nível das tabelas, o Apache Hive ajuda a melhorar o desempenho geral.
- Possui um otimizador baseado em regras para otimizar diferentes planos lógicos.
- Ele funciona em HiveQL, uma linguagem semelhante ao SQL, o que significa que os desenvolvedores não precisam dominar outra linguagem para trabalhar com grandes conjuntos de dados.
- Consultar no Hive é extremamente simples, semelhante ao SQL.
- Também podemos executar consultas ad-hoc para a análise de dados usando o Hive.
Limitação do Apache Hive
Como o mundo da Data Science é relativamente novo e em constante evolução, mesmo as melhores ferramentas disponíveis no mercado apresentam algumas limitações. Resolver essas limitações é o que nos dará as próximas melhores ferramentas. Aqui estão algumas limitações de trabalhar com o Apache Hive para você ter em mente:
- O Hive não oferece atualizações em nível de linha e consultas em tempo real.
- O Apache Hive fornece latência aceitável para interatividade.
- Não é o melhor para trabalhar com transações online.
- A latência nas consultas do Hive geralmente é maior que a média.
Para concluir
O Apache Hive trouxe melhorias drásticas e surpreendentes na maneira como os engenheiros de dados trabalham em grandes conjuntos de dados. Além disso, ao eliminar completamente a necessidade da linguagem de programação Java, o Apache Hive trouxe um conforto familiar aos engenheiros de dados. Hoje, você pode trabalhar sem problemas com o Apache Hive se tiver o conhecimento fundamental de consulta SQL.
Como mencionamos anteriormente, Data Science é um campo dinâmico e em constante evolução. Temos certeza de que os próximos anos trarão novas ferramentas e estruturas para simplificar ainda mais as coisas. Se você é um entusiasta de dados que deseja aprender todas as ferramentas do comércio de Data Science, agora é o melhor momento para se familiarizar com ferramentas de Big Data como o Hive.
No upGrad, orientamos e orientamos estudantes de todo o mundo e ajudamos pessoas de diferentes origens a estabelecer uma posição firme no setor de Ciência de Dados. Nossos professores especialistas, parcerias do setor, assistência de colocação e rede robusta de ex-alunos garantem que você nunca esteja sozinho nessa jornada. Então confira nosso Programa PG Executivo em Ciência de Dados e matricule-se no programa certo para você – nós cuidaremos do resto!
Apache Hive é uma estrutura ou sistema usado para armazenamento, consulta e análise de grandes conjuntos de dados. O Apache Hive foi introduzido pelo Facebook para aprimorar suas operações internas e, desde então, tem sido parte integrante do espectro da Ciência de Dados. Não! Apenas o conhecimento prático do SQL será suficiente para você começar a usar o Apache Hive! O Apache Hive geralmente é usado para OLAP (processamento em lote) e geralmente não é usado para OLTP devido às operações em tempo real no banco de dados.O que é o Apache Hive no Hadoop?
Preciso aprender algum idioma específico para trabalhar com o Apache Hive no Hadoop?
Para que o Apache Hive NÃO é usado?