Jornada de Integração Cósmica com Hive

HadoopBeginner
Pratique Agora

Introdução

Numa galáxia distante, existe uma base de pesquisa alienígena dedicada a estudar os mistérios do universo. Uma das pesquisadoras principais, a Xenobióloga Zara, foi encarregada de analisar vastas quantidades de dados coletados de vários corpos celestes. No entanto, o volume e a complexidade dos dados tornaram desafiador o processamento e a extração de insights valiosos usando métodos tradicionais.

O objetivo de Zara é aproveitar o poder do Hadoop Hive, uma poderosa ferramenta de data warehousing, para armazenar, processar e analisar eficientemente os dados astronômicos. Ao configurar o Hive no cluster Hadoop da base, ela espera descobrir padrões e relações ocultas que possam lançar luz sobre as origens e a evolução dos corpos celestes, avançando, em última análise, nossa compreensão do cosmos.

Instalando o Hive

Nesta etapa, instalaremos o Apache Hive em nosso cluster Hadoop, o que nos permitirá processar e analisar os dados astronômicos usando consultas semelhantes a SQL.

Primeiro, mude para o usuário hadoop executando o seguinte comando no terminal:

su - hadoop

Em seguida, baixe a versão estável mais recente do Apache Hive do site oficial:

wget https://downloads.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz

Extraia o arquivo baixado:

tar -xzf apache-hive-3.1.3-bin.tar.gz

Em seguida, defina a variável de ambiente HIVE_HOME adicionando a seguinte linha ao arquivo ~/.bashrc:

echo 'export HIVE_HOME=/home/hadoop/apache-hive-3.1.3-bin' >> ~/.bashrc
export HIVE_HOME=/home/hadoop/apache-hive-3.1.3-bin

Configure o Hive para trabalhar com o cluster Hadoop criando um arquivo hive-site.xml no diretório $HIVE_HOME/conf com o seguinte conteúdo:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:derby:;databaseName=/home/hadoop/metastore_db;create=true</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>org.apache.derby.jdbc.EmbeddedDriver</value>
  </property>
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
  </property>
</configuration>

Este arquivo de configuração configura o metastore do Hive, que armazena os metadados para as tabelas e partições do Hive.

Finalmente, inicialize a metabase com o seguinte comando:

$HIVE_HOME/bin/schematool -dbType derby -initSchema

Criando uma Tabela Hive

Nesta etapa, criaremos uma tabela Hive para armazenar os dados astronômicos coletados de vários corpos celestes.

  1. Inicie o shell do Hive executando o seguinte comando:
$HIVE_HOME/bin/hive
  1. Crie um novo banco de dados chamado astronomy:
CREATE DATABASE astronomy;
  1. Use o banco de dados astronomy:
USE astronomy;
  1. Crie uma nova tabela chamada celestial_bodies com o seguinte esquema:
CREATE TABLE celestial_bodies (
  id INT,
  name STRING,
  type STRING,
  distance DOUBLE,
  mass DOUBLE,
  radius DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

Esta tabela armazenará informações sobre vários corpos celestes, incluindo seu ID, nome, tipo (por exemplo, estrela, planeta, asteroide), distância da Terra, massa e raio.

  1. Carregue alguns dados de amostra na tabela celestial_bodies de um arquivo local:
LOAD DATA LOCAL INPATH '/home/hadoop/celestial_data.csv' OVERWRITE INTO TABLE celestial_bodies;

Dicas: Uma simulação chamada celestial_data.csv já existe no caminho /home/hadoop/

  1. Saia do shell do Hive:
EXIT;

Consultando a Tabela Hive

Nesta etapa, executaremos algumas consultas semelhantes a SQL na tabela celestial_bodies para analisar os dados astronômicos.

  1. Inicie o shell do Hive, caso ele ainda não esteja em execução:
$HIVE_HOME/bin/hive
  1. Use o banco de dados astronomy:
USE astronomy;
  1. Obtenha a contagem de corpos celestes na tabela:
SELECT COUNT(*) FROM celestial_bodies;
  1. Encontre os corpos celestes com uma massa maior que 1.0:
SELECT name, type, mass FROM celestial_bodies WHERE mass > 1.0;
  1. Obtenha a distância média dos planetas da Terra:
SELECT AVG(distance) FROM celestial_bodies WHERE type = 'Planet';
  1. Saia do shell do Hive:
EXIT;

Sinta-se à vontade para experimentar mais consultas com base em seus requisitos de análise.

Resumo

Neste laboratório, exploramos o processo de configuração do Apache Hive em um cluster Hadoop e seu uso para armazenar e analisar dados astronômicos. Aprendemos como instalar o Hive, criar um banco de dados e uma tabela Hive, carregar dados na tabela e executar consultas semelhantes a SQL para extrair informações valiosas dos dados.

Ao aproveitar o poder do Hive, a Xenobióloga Zara agora pode processar e analisar com eficiência as vastas quantidades de dados de corpos celestes coletados pela base de pesquisa alienígena. A capacidade de realizar consultas e agregações complexas nesses dados permitirá que ela descubra padrões e relacionamentos ocultos, potencialmente levando a descobertas inovadoras sobre as origens e a evolução dos corpos celestes.

Este laboratório não apenas forneceu experiência prática com a configuração do Hive e análise de dados, mas também destacou a versatilidade e escalabilidade do ecossistema Hadoop no tratamento de tarefas de processamento de dados em larga escala. À medida que continuamos a explorar os mistérios do universo, ferramentas como o Hive desempenharão um papel crucial na descoberta dos segredos escondidos na vasta extensão de dados celestes.