Descoberta de Dados de Marte com Hadoop

HadoopBeginner
Pratique Agora

Introdução

No ano de 2150, os recursos da Terra foram esgotados, e a humanidade estabeleceu uma metrópole próspera em Marte, conhecida como Martrópolis. Como oficial de proteção ambiental, sua missão é garantir a sustentabilidade desta cidade futurista, analisando e otimizando a utilização de recursos. Uma de suas principais responsabilidades é aproveitar o poder do Hadoop e do Hive para processar e analisar vastas quantidades de dados ambientais, o que guiará seu processo de tomada de decisão.

Seu objetivo é explorar o banco de dados Hive, investigar sua estrutura e obter insights sobre os dados que ele contém. Ao dominar a arte de descrever tabelas no Hive, você desvendará os segredos escondidos nos dados, permitindo que você tome decisões informadas que moldarão o futuro de Martrópolis e protegerão seu delicado ecossistema.

Conectar ao Hive e Listar Bancos de Dados Disponíveis

Nesta etapa, você aprenderá como se conectar ao ambiente Hive e listar os bancos de dados disponíveis.

Primeiramente, certifique-se de estar logado como o usuário hadoop, executando o seguinte comando no terminal:

su - hadoop

Agora, inicie o shell do Hive executando o seguinte comando:

hive

Uma vez no shell do Hive, você pode usar o comando SHOW DATABASES para listar todos os bancos de dados disponíveis.

SHOW DATABASES;

Este comando exibirá uma lista de bancos de dados, incluindo o banco de dados padrão. Exemplo de saída:

hive> SHOW DATABASES;
OK
default
martropolis
Time taken: 0.528 seconds, Fetched: 2 row(s)

Alternar para o Banco de Dados 'martropolis'

Nesta etapa, você mudará para o banco de dados martropolis, que contém as tabelas relevantes para sua missão.

USE martropolis;

Após executar este comando, você estará trabalhando dentro do banco de dados martropolis.

Dica: martropolis foi criado automaticamente pelo sistema como um banco de dados de exemplo para este laboratório.

Listar Tabelas no Banco de Dados 'martropolis'

Agora que você está no banco de dados martropolis, você pode listar todas as tabelas que ele contém usando o comando SHOW TABLES.

SHOW TABLES;

Este comando exibirá uma lista de tabelas disponíveis no banco de dados martropolis. Exemplo de saída:

hive> SHOW TABLES;
OK
sensor_data
Time taken: 0.028 seconds, Fetched: 1 row(s)

Descrever a Estrutura de uma Tabela

Para entender a estrutura de uma tabela, você pode usar o comando DESCRIBE seguido pelo nome da tabela.

DESCRIBE sensor_data;

Este comando fornecerá informações detalhadas sobre as colunas da tabela, incluindo nomes de colunas, tipos de dados e quaisquer metadados adicionais. Exemplo de saída:

hive> DESCRIBE sensor_data;
OK
sensor_id               int
sensor_name             string
reading                 double
dt                      string

## Partition Information
## col_name              data_type               comment
dt                      string
Time taken: 0.154 seconds, Fetched: 8 row(s)

Explorar as Propriedades da Tabela

Além da estrutura da tabela, você também pode explorar as propriedades de uma tabela usando o comando DESCRIBE EXTENDED.

DESCRIBE EXTENDED sensor_data;

Este comando fornecerá informações mais detalhadas sobre a tabela, incluindo suas propriedades, como o tipo de tabela, formatos de entrada e saída, localização e quaisquer outros metadados relevantes. Exemplo de saída:

hive> DESCRIBE EXTENDED sensor_data;
OK
sensor_id               int
sensor_name             string
reading                 double
dt                      string

## Partition Information
## col_name              data_type               comment
dt                      string

Detailed Table Information      Table(tableName:sensor_data, dbName:martropolis, owner:hadoop, createTime:1711106250, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:sensor_id, type:int, comment:null), FieldSchema(name:sensor_name, type:string, comment:null), FieldSchema(name:reading, type:double, comment:null), FieldSchema(name:dt, type:string, comment:null)], location:hdfs://localhost:9000/user/hive/warehouse/martropolis.db/sensor_data, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], skewedColValues:[], skewedColValueLocationMaps:{}), storedAsSubDirectories:false), partitionKeys:[FieldSchema(name:dt, type:string, comment:null)], parameters:{totalSize=49, numRows=2, rawDataSize=47, COLUMN_STATS_ACCURATE={\"BASIC_STATS\":\"true\"}, numFiles=1, numPartitions=1, transient_lastDdlTime=1711106250, bucketing_version=2}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE, rewriteEnabled:false, catName:hive, ownerType:USER)
Time taken: 0.367 seconds, Fetched: 10 row(s)

Analisar Partições da Tabela (Opcional)

Se suas tabelas forem particionadas, você pode usar o comando SHOW PARTITIONS para visualizar as partições de uma tabela específica.

SHOW PARTITIONS sensor_data;

Este comando exibirá uma lista de partições para a tabela especificada, juntamente com seus valores de partição correspondentes. Exemplo de saída:

hive> SHOW PARTITIONS sensor_data;
OK
dt=2023-05-01
Time taken: 0.099 seconds, Fetched: 1 row(s)

Resumo

Neste laboratório, você aprendeu a navegar no ambiente Hive, alternar entre bancos de dados, listar tabelas e descrever a estrutura e as propriedades das tabelas. Ao dominar essas habilidades fundamentais, você deu o primeiro passo para desvendar os valiosos insights escondidos nos dados ambientais de Martropolis.

Através da experiência prática, você adquiriu uma compreensão mais profunda dos comandos SHOW DATABASES, USE, SHOW TABLES, DESCRIBE, DESCRIBE EXTENDED e SHOW PARTITIONS. Esses comandos são ferramentas essenciais para explorar e entender a organização dos dados no Hive, permitindo que você tome decisões informadas que moldarão o futuro de Martropolis e protegerão seu delicado ecossistema.