O Apache Hive, um software de data warehouse de código aberto, foi inicialmente desenvolvido no Facebook em 2007. Foi concebido para fornecer capacidades de consulta do tipo SQL, que permitiam aos utilizadores consultar e analisar grandes conjuntos de dados armazenados no Hadoop Distributed File System (HDFS). O Hive traduz as consultas do tipo SQL em tarefas MapReduce, que são executadas num cluster Hadoop. O Hive também fornece uma camada de metadados, que permite aos utilizadores definir esquemas e tabelas para os seus dados.
Data Lake
Um data lake é um repositório centralizado que permite aos utilizadores armazenar todos os tipos de dados estruturados e não estruturados a qualquer escala. Os lagos de dados são concebidos para armazenar grandes volumes de dados no seu formato nativo, sem qualquer transformação prévia. Os lagos de dados utilizam o HDFS (Hadoop Distributed File System) ou o armazenamento de objectos na nuvem, como o Amazon S3, como camada de armazenamento. Os dados podem ser armazenados num lago de dados em qualquer formato, incluindo CSV, JSON, Parquet, Avro e ORC. Os lagos de dados permitem aos utilizadores analisar dados utilizando várias tecnologias como Hive, Pig, Spark e Impala.
MapReduce e Hadoop
MapReduce é um modelo de programação para processar grandes conjuntos de dados num cluster Hadoop. O MapReduce consiste em duas fases: Mapear e Reduzir. A fase Map recebe os dados de entrada e converte-os em pares chave-valor, que são depois processados pela fase Reduce. O Hadoop é uma estrutura de código aberto que fornece um sistema de ficheiros distribuído (HDFS) e um motor MapReduce para o processamento de grandes conjuntos de dados. O Hadoop foi concebido para escalar horizontalmente, o que significa que pode adicionar mais nós ao cluster para aumentar o poder de processamento.
O Hadoop tem algumas desvantagens, incluindo:
2. Escalabilidade: Embora o Hadoop seja projetado para escalar horizontalmente, adicionar nós ao cluster pode ser caro.
Latência: O Hadoop não foi concebido para processamento em tempo real e pode demorar vários minutos a processar um trabalho.
4. sobrecarga de recursos: O Hadoop requer uma grande quantidade de espaço em disco e memória para funcionar de forma eficaz.
Existem duas arquitecturas principais para o processamento de dados em grande escala:
1. Processamento em lote: Esta arquitectura é utilizada para processar grandes volumes de dados em lotes. Os sistemas de processamento em lote são concebidos para optimizar a utilização de recursos e suportar a tolerância a falhas.
2. Processamento de fluxo: Esta arquitectura é utilizada para processar dados em tempo real à medida que estes chegam. Os sistemas de processamento de fluxo são projetados para oferecer suporte ao processamento de baixa latência e tolerância a falhas.
Quando usar o Spark
O Spark é um sistema de computação distribuída projetado para processamento de dados em grande escala. O Spark foi projetado para ser mais rápido que o MapReduce e pode ser usado para processamento em lote e processamento de fluxo. O Spark é adequado para casos de uso que exigem processamento de baixa latência, aprendizado de máquina e processamento de gráficos. O Spark também é compatível com o Hadoop, o que significa que pode ser usado com o sistema de arquivos distribuídos do Hadoop (HDFS) e outras tecnologias do ecossistema Hadoop, como Hive e Pig.
O Hadoop é utilizado por várias organizações em diferentes sectores, incluindo finanças, saúde, retalho, governo e tecnologia. Algumas empresas bem conhecidas que utilizam o Hadoop incluem o Yahoo!, o Facebook, a Amazon, o eBay, o Twitter e o LinkedIn. O Hadoop é particularmente útil para organizações que lidam com grandes volumes de dados estruturados e não estruturados e precisam de efectuar análises e processamentos de dados complexos.
O artigo “Apache Hive: Desenvolvimento e tecnologias relacionadas” não menciona especificamente a fase em que deve ser definido o objectivo de um projecto de implementação da análise de grandes volumes de dados. No entanto, em geral, o objectivo de um projecto de implementação da análise de grandes volumes de dados deve ser definido durante a fase de planeamento do projecto, antes do início de qualquer trabalho de desenvolvimento. Isto permite estabelecer objectivos claros e que a equipa do projecto tenha um entendimento comum do que é necessário alcançar.
A ferramenta de recolha para a estrutura Hadoop é o Apache Flume, que é um sistema distribuído, fiável e disponível para recolher, agregar e mover eficientemente grandes quantidades de dados de registo de muitas fontes diferentes para um armazenamento de dados centralizado.