Introdução
Na vasta extensão de um deserto árido, uma feroz tempestade de areia se enfurece, chicoteando nuvens de areia que obscurecem o horizonte. Em meio ao caos turbulento, um majestoso dragão do deserto voa pelo céu, suas escamas brilhando com uma tonalidade dourada brilhante. Essa criatura poderosa tem uma missão crítica: reunir informações vitais de fontes de dados dispersas e descobrir insights ocultos que poderiam ajudar a domar a implacável tempestade de areia.
O objetivo deste laboratório é equipá-lo com as habilidades para aproveitar o poder do Hadoop e do Hive, permitindo que você junte e combine dados de múltiplas fontes. Ao dominar a arte de juntar dados (joining data), você desbloqueará a capacidade de desvendar relacionamentos complexos e descobrir padrões valiosos, assim como o dragão do deserto busca desvendar os segredos da tempestade de areia furiosa.
Configurando o Ambiente
Nesta etapa, você preparará o ambiente necessário para trabalhar com Hadoop e Hive.
- Abra uma janela de terminal e mude para o usuário
hadoopexecutando o seguinte comando:
su - hadoop
- Navegue até o diretório
/home/hadoopexecutando o seguinte comando:
cd /home/hadoop
- Crie um novo diretório chamado
join_labpara armazenar seus arquivos:
mkdir join_lab
- Mude para o diretório
join_lab:
cd join_lab
Agora você tem um espaço de trabalho dedicado para este laboratório.
Criando Conjuntos de Dados de Exemplo
Nesta etapa, você criará dois conjuntos de dados de amostra para praticar operações de junção (joining operations) no Hive.
- Crie um novo arquivo chamado
employees.txtcom o seguinte conteúdo:
101,John Doe,Sales
102,Jane Smith,Marketing
103,Michael Johnson,IT
104,Emily Davis,HR
105,Adam Wilson,Finance
106,Lisa Brown,Operations
- Crie outro arquivo chamado
departments.txtcom o seguinte conteúdo:
1,Sales,New York
2,Marketing,Los Angeles
3,IT,Chicago
4,HR,San Francisco
- Inicie o shell do Hive executando o seguinte comando:
hive
- Carregue os conjuntos de dados no Hive executando os seguintes comandos:
CREATE TABLE employees (emp_id INT, name STRING, dept STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
LOAD DATA LOCAL INPATH '/home/hadoop/join_lab/employees.txt' OVERWRITE INTO TABLE employees;
CREATE TABLE departments (dept_id INT, dept_name STRING, location STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
LOAD DATA LOCAL INPATH '/home/hadoop/join_lab/departments.txt' OVERWRITE INTO TABLE departments;
Esses comandos criarão duas tabelas Hive, employees e departments, e carregarão os dados dos arquivos de texto respectivos.
Realizando Inner Join
Nesta etapa, você aprenderá como realizar uma operação de inner join no Hive para combinar dados das tabelas employees e departments.
Execute a seguinte consulta Hive para realizar um inner join:
CREATE TABLE result_1
AS
SELECT e.emp_id, e.name, d.dept_name, d.location
FROM employees e
JOIN departments d
ON e.dept = d.dept_name;
SELECT * FROM result_1;
Esta consulta junta as tabelas employees e departments com base nas colunas dept e dept_name, respectivamente. Ela recupera as colunas emp_id, name, dept_name e location do resultado da junção.
A saída deve ser semelhante a esta:
101 John Doe Sales New York
102 Jane Smith Marketing Los Angeles
103 Michael Johnson IT Chicago
104 Emily Davis HR San Francisco
Um inner join combina linhas de duas tabelas com base em uma condição especificada. Neste caso, ele corresponde aos valores dept da tabela employees com os valores dept_name da tabela departments. O resultado inclui apenas as linhas onde a condição de junção é satisfeita, o que significa que os valores dept e dept_name correspondem.
Realizando Left Outer Join
Nesta etapa, você aprenderá como realizar uma operação de left outer join no Hive.
Execute a seguinte consulta Hive para realizar um left outer join:
CREATE TABLE result_2
AS
SELECT e.emp_id, e.name, d.dept_name, d.location
FROM employees e
LEFT OUTER JOIN departments d
ON e.dept = d.dept_name;
SELECT * FROM result_2;
Esta consulta realiza um left outer join entre as tabelas employees e departments. Ela inclui todas as linhas da tabela da esquerda (employees) e as linhas correspondentes da tabela da direita (departments). Se não houver correspondência na tabela da direita, o resultado conterá valores NULL para as colunas da tabela da direita.
A saída deve ser semelhante a esta:
101 John Doe Sales New York
102 Jane Smith Marketing Los Angeles
103 Michael Johnson IT Chicago
104 Emily Davis HR San Francisco
105 Adam Wilson NULL NULL
106 Lisa Brown NULL NULL
Um left outer join retorna todas as linhas da tabela da esquerda (employees) e as linhas correspondentes da tabela da direita (departments). Se uma linha na tabela da esquerda não tiver uma linha correspondente na tabela da direita, o resultado incluirá valores NULL para as colunas da tabela da direita.
Resumo
Neste laboratório, você aprendeu como trabalhar com Hadoop e Hive para realizar operações de junção em conjuntos de dados. Você criou conjuntos de dados de exemplo e os carregou em tabelas Hive, permitindo que você praticasse inner joins e left outer joins. Ao dominar essas operações de junção, você ganhou a capacidade de combinar e analisar dados de múltiplas fontes, assim como o dragão do deserto combina informações de fontes dispersas para desvendar os segredos da tempestade de areia furiosa.
Ao longo deste laboratório, meu objetivo foi fornecer uma experiência de aprendizado estruturada e imersiva, guiando você por cada etapa com instruções claras, exemplos de código e explicações. O uso de verificadores (checkers) garantiu que você pudesse validar seu progresso e identificar áreas para melhoria. Ao projetar um cenário que ressoa com os desafios enfrentados na análise de dados, espero ter tornado o processo de aprendizado mais envolvente e relevante.
No geral, este laboratório não apenas o equipou com habilidades técnicas em Hadoop e Hive, mas também promoveu uma compreensão mais profunda da importância da integração e análise de dados na resolução de problemas complexos. Assim como o dragão do deserto persevera em sua missão, seu novo conhecimento o capacitará a enfrentar desafios de dados do mundo real com confiança e criatividade.



