Você está na página 1de 13

01/01/2018 Big Data! Hands On: criando programas em Hadoop e relatórios em 90 minutos.

| LinkedIn

Experimente
Pesquisar
Premium grátis

Adriano Gomes Batista dos Santos, Arquiteto de Soluções | Engenheiro de So ware

Big Data! Hands On: criando programas


em Hadoop e relatórios em 90 minutos.
Publicado em 16 de dezembro de 2017

Adriano Gomes Batista dos Santos Seguir


TI - | Ciência da Computação | Arquitetura de Soluções | Transformaçã… 92 14 22
2 artigos

Objetivo

Tutorial prático de implementação de um caso de uso Big Data, faz uso de algumas
funcionalidades básicas de tecnologias do ecossistema Hadoop e de relatórios
QlikView.

Duração

Estima-se 90 minutos de duração para realizar as atividades de programação do tutorial,


todavia não estão contabilizados os esforços para fazer as instalações das ferramentas
necessárias para o desenvolvimento, sobretudo o tutorial também explica
detalhadamente como instala-las.

Público alvo

Profissionais e estudantes de computação;

Iniciantes no uso da tecnologia Hadoop;

Entusiastas de tecnologia;

Pré-requisitos

Pessoas com conhecimentos básicos de sistema operacional, programação e banco


de dados;

Mensagens

https://www.linkedin.com/pulse/big-data-hands-criando-programas-hadoop-e-relat%C3%B3rios-adriano-gomes/?trackingId=AjM9sUZBnymjenywiQSLqg%3… 1/13
01/01/2018 Big Data! Hands On: criando programas em Hadoop e relatórios em 90 minutos. | LinkedIn

Pesquisar
Computador com configuração minima 4G de mémoria RAM e processador de 64 Experimente
Premium grátis
bits para execução da VM da Cloudera;

Computador com sistema operacional Windows para instalação do QlikView;

Caso de Uso a ser implementado

A empresa fictícia "Di Jordan's" de Engenharia de Transito necessita disponibilizar


dados (provenientes do seu Sistema de Multas) uma vez por dia no seu Data Lake.
Com tais dados serão criados relatórios informativos cujos ajudarão os seus
colaboradores: tomarem decisões que auxiliarão na criação de políticas educativas para
melhorar a segurança do trânsito da cidade; e ter uma previsão dos valores que serão
arrecadados;

Arquitetura da solução

A seguir a Big Picture da Arquitetura de Solução Batch para realizar o caso de uso:

Metodologia de apoio

Explicações sobre as tecnologias estão acessíveis via links distribuídos no texto;

Os códigos fontes necessários para o desenvolvimento do tutorial também estão


distribuídos nos links. Utilize-os para acelerar e minimizar erros de digitação;

Imagens são utilizadas exaustivamente para facilitar o entendimento do tutorial;

Caso ocorra erro em alguma etapa do tutorial, revise e resolva antes de avançar;

Você esta pronto? Então vamos começar!

1.Instalação, configuração e inicialização do VirtualBox Manager.

O software em questão é um emulador de máquina virtual cuja ira executar a
máquina virtual linux da Cloudera.

Baixe os pacotes (VM VirtualBox Base Packages e VM VirtualBox Extension Pack) e


os instale no sistema operacional Windows da sua máquina.

Abaixo a perspectiva do VirtualBox Manager instalado com êxito:

2. Instalação, configuração e inicialização da VM da Cloudera

O software em questão é a máquina virtual da Cloudera cuja contém instalado o sistema


operacional Linux, o MySQL e especialmente o Hadoop e outros componentes que
compõem o ecossistema.

https://www.linkedin.com/pulse/big-data-hands-criando-programas-hadoop-e-relat%C3%B3rios-adriano-gomes/?trackingId=AjM9sUZBnymjenywiQSLqg%3… 2/13
01/01/2018 Big Data! Hands On: criando programas em Hadoop e relatórios em 90 minutos. | LinkedIn

Baixe-o e importe-o no VirtualBox. Experimente


Pesquisar
Premium grátis

Configure os parâmetros de execução e inicialize-o:

Acima a perspectiva da VM Cloudera iniciada com êxito pelo VirtualBox.

3. Criação do sistema de multas

Nessa etapa será criada e carregada a base de dados MySQL cuja representa o "Sistema
de Multas" da solução, o qual é o sistema origem que prove os dados que serão
carregados pelo Sqoop no Hadoop HDFS.

3.1 Baixe o arquivo disponibilizado pelo link, o qual será utilizado para gerar a base de
dados completa: tabela, usuário e dados.

Salve o arquivo no diretório /home/cloudera/Downloads

Abaixo a perspectiva de uma amostra do script contido no arquivo baixado:

3.2 Abra o console (1) e o MySQL na VM da Cloudera.

A seguir o comando (2) para abrir o client do MySQL:

mysql -uroot -pcloudera

https://www.linkedin.com/pulse/big-data-hands-criando-programas-hadoop-e-relat%C3%B3rios-adriano-gomes/?trackingId=AjM9sUZBnymjenywiQSLqg%3… 3/13
01/01/2018 Big Data! Hands On: criando programas em Hadoop e relatórios em 90 minutos. | LinkedIn

A seguir a perspectiva do client do MySQL aberto com êxito: Experimente


Pesquisar
Premium grátis

3.3 Execute o comando que cria a base de dados "DBMultas", o usuário "hive_multas"
e a tabela "TB_MULTAS" cuja é carregada com 1.000 registros:

source /home/cloudera/Downloads/TB_MULTAS.sql;

Abaixo a perspectiva após a execução do comando com êxito:

3.4 Execute respectivamente os comandos seguintes para certificar que o banco de


dados foi gerado e carregado com êxito:

show tables;

select count(*) from TB_MULTAS;

select motorista_cnh, multa_data_hora  from TB_MULTAS


where MULTA_TIPO = 'GRAVISSIMA' and MULTA_LOCAL = 'Av. 03'
and CARRO_MARCA = 'Toyota';

A titulo de informação!, a base e os dados em
questão foram gerados com o excelente
"software free": https://mockaroo.com/

4. Importação dos dados no HDFS

Nessa etapa a ferramenta Sqoop realiza a ingestão (carga) dos dados proveniente do
"Sistema de Multas" (MySQL) para o HDFS.
https://www.linkedin.com/pulse/big-data-hands-criando-programas-hadoop-e-relat%C3%B3rios-adriano-gomes/?trackingId=AjM9sUZBnymjenywiQSLqg%3… 4/13
01/01/2018 Big Data! Hands On: criando programas em Hadoop e relatórios em 90 minutos. | LinkedIn

Experimente
Pesquisar
Premium grátis

4.1 Execute as seguintes instruções para realizar a ingestão dos dados:

Baixe o arquivo disponibilizado pelo link, cujo contém a instrução Sqoop para fazer a
importação dos dados para o HDFS. Salve-o no diretório /home/cloudera/Downloads

4.2 Abra uma nova janela do console, copie o conteúdo do arquivo baixado e cole no
prompt para importar os dados do sistema de multas para o HDFS.

sqoop import \
--connect jdbc:mysql://localhost/DBMultas \
--username hive_multas \
--password hive_multas \
--table TB_MULTAS \
-m 1 \
--target-dir /user/cloudera/multas

Abaixo a perspectiva de execução do Sqoop com êxito, no caso o destaque das


informações de retorno do MapReduce.

4.3 Consulte via console o diretório que foi gerado no HDFS:

hadoop fs -ls /user/cloudera/multas

4.4 Consulte via browser o diretório criado no HDFS:

Endereço: localhost:8888

Usuário: cloudera

Senha: cloudera

5. Criação da tabela Hive

Nessa etapa a ferramenta Hive é utilizada para criação de uma Tabela Hive externa cuja
armazenará os metadados necessários e fornecera uma abstração para acessar os dados
armazenados no HDFS, utilizando uma linguagem próxima da linguagem SQL.
https://www.linkedin.com/pulse/big-data-hands-criando-programas-hadoop-e-relat%C3%B3rios-adriano-gomes/?trackingId=AjM9sUZBnymjenywiQSLqg%3… 5/13
01/01/2018 Big Data! Hands On: criando programas em Hadoop e relatórios em 90 minutos. | LinkedIn

Experimente
Pesquisar
Premium grátis

5.1 Baixe o arquivo disponibilizado pelo link, o qual será utilizado para gerar a base
completa. Salve-o no diretório /home/cloudera/Downloads

5.2 Abra uma nova janela do console e execute o seguinte comando para iniciar o Hive:

hive

5.3 Copie o conteúdo do arquivo baixado, cole no prompt para executar efetivamente o
comando que cria tabela externa:

CREATE external TABLE MULTAS_HIVE (


id INT,
MOTORISTA_CNH STRING,
MOTORISTA_CNH_DATA TIMESTAMP,
MOTORISTA_NOME STRING,
MOTORISTA_SEXO STRING,
MOTORISTA_DATA_NASCIMENTO TIMESTAMP,
MULTA_VALOR DECIMAL(7,2),
MULTA_TIPO STRING,
MULTA_LOCAL STRING,
MULTA_DATA_HORA TIMESTAMP,
CARRO_MARCA STRING,
CARRO_MODELO STRING,
CARRO_ANO STRING,
CARRO_COR STRING,
CARRO_PLACA STRING,
CARRO_CIDADE STRING,
CARRO_RENAVAM STRING
)
COMMENT 'FROM Mysql'
row format delimited fields terminated by ',' stored as textfile
location '/user/cloudera/multas';

5.4 Abaixo são executados alguns comandos para consultar via console o hive, e
certificar que ocorreu êxito na criação da tabela:

show tables;

select multa_valor from multas_hive where MOTORISTA_CNH = '0094613754';

https://www.linkedin.com/pulse/big-data-hands-criando-programas-hadoop-e-relat%C3%B3rios-adriano-gomes/?trackingId=AjM9sUZBnymjenywiQSLqg%3… 6/13
01/01/2018 Big Data! Hands On: criando programas em Hadoop e relatórios em 90 minutos. | LinkedIn

Experimente
Pesquisar
Premium grátis

6. Impala

Nessa etapa são consultados os dados e compartilhados os metadados da tabela hive


entre as ferramentas Hive e Impala - o qual executará as queries para fornecer dados
para os relatórios QlikView.

6.1 Consulte via browser a tabela hive:

Endereço: localhost:8888

Usuário: cloudera

Senha: cloudera

6.1.1 Executar o comando INVALIDATE METADATA abaixo para "sincronizar" e


compartilhar os metadados do hive com o impala:

INVALIDATE METADATA

6.2.Abaixo a consulta no impala após o compartilhamento dos metadados:

7. Instalação do driver Cloudera ODBC Impala

Nessa etapa são descritos os passos para realizar no sistema operacional Windows a
instalação do driver ODBC (componente de software adaptador que viabiliza a conexão
do QlikView ao Impala).

Baixe o instalador após preencher o formulário no site da Cloudera:

https://www.linkedin.com/pulse/big-data-hands-criando-programas-hadoop-e-relat%C3%B3rios-adriano-gomes/?trackingId=AjM9sUZBnymjenywiQSLqg%3… 7/13
01/01/2018 Big Data! Hands On: criando programas em Hadoop e relatórios em 90 minutos. | LinkedIn

Execute o arquivo instalador que foi baixado: Experimente


Pesquisar
Premium grátis

...

Faça a configuração ODBC para conectar no Impala:

Preencha os campos da tela abaixo usando os próprios valores destacados na cor verde:

Certifique que a VM Cloudera esteja iniciada para que após clicar no botão "Test..."
seja exibido a seguinte tela cuja informa "conexão com sucesso!"

8. Instalação da ferramenta QlikView

Nessa etapa são descritos os passos para realizar a instalação do QlikView no sistema
operacional Windows.

Baixe o instalador após preencher o formulário no site da Qlik:

Execute o arquivo instalador que foi baixado:

...

Abaixo a perspectiva do QlikView aberto com sucesso.

9. Desenvolvimento dos relatórios que consomem as informações do Big Data

https://www.linkedin.com/pulse/big-data-hands-criando-programas-hadoop-e-relat%C3%B3rios-adriano-gomes/?trackingId=AjM9sUZBnymjenywiQSLqg%3… 8/13
01/01/2018 Big Data! Hands On: criando programas em Hadoop e relatórios em 90 minutos. | LinkedIn

Essa é a etapa final do tutorial, o desenvolvimento do relatório QlikView. Experimente


Pesquisar
Premium grátis

9.1 Realizando a conexão ODBC.

O QlikView faz uso do driver ODBC que foi
instalado no Windows para assim conectar­se
ao Impala cujo executa as Queries.

Abaixo a perspectiva da conexão realizada com sucesso!

9.2 Selecionar a tabela hive

É necessário informar qual será a tabela hive
que será utilizada como fonte de dados para
os relatórios.

9.3 Carregar os dados

Procedimento para carregar os dados na
memoria da máquina que esta executando o
QlikView, isto é, os dados são copiados do
Hadoop.

Abaixo a perspectiva do "carregamento" dos dados realizados com êxito.

9.4 Construção do relatório gráfico pizza

Média dos anos dos carros por gravidade da
multa

https://www.linkedin.com/pulse/big-data-hands-criando-programas-hadoop-e-relat%C3%B3rios-adriano-gomes/?trackingId=AjM9sUZBnymjenywiQSLqg%3… 9/13
01/01/2018 Big Data! Hands On: criando programas em Hadoop e relatórios em 90 minutos. | LinkedIn

Experimente
Pesquisar
Premium grátis

Primeira Dimensão: multa_tipo

Media: carro_ano

Abaixo a perspectiva do relatório gerado:

9.5 Construção do relatório gráfico barras

Valor total de multas por sexo do motorista e
gravidade da multa

Primeira Dimensão: multa_tipo

Primeira Dimensão: motorista_sexo

Soma: multa_valor

Abaixo a perspectiva do relatório gerado:

9.6 Construção do relatório tabela

Quantidades de multas por local, motorista e
carro.

https://www.linkedin.com/pulse/big-data-hands-criando-programas-hadoop-e-relat%C3%B3rios-adriano-gomes/?trackingId=AjM9sUZBnymjenywiQSLqg%3… 10/13
01/01/2018 Big Data! Hands On: criando programas em Hadoop e relatórios em 90 minutos. | LinkedIn

Primeira Dimensão: multa_local Experimente


Pesquisar
Premium grátis

Segunda Dimensão: multa_cnh

Terceira Dimensão: carro_renavam

Soma: id

Estilo: Pijama Verde

Abaixo a perspectiva do relatório gerado:

9.7 Código fonte dos relatórios

Caso necessite baixe o código fonte que foi desenvolvido para os relatórios acima.

Gostou? Curta, comente ou fale comigo.
Abraços e até a próxima.

Sobre o Autor

Adriano Gomes Batista dos Santos, profissional de TI desde 2001, colaborador do


time de Digital Architecture da everis.

Competências: Arquiteto de soluções, Java e SOA; Big Data; Integração Continua;


DevOps; Professor;

Interesses

Trabalhos e pesquisas sobre arquiteturas, tecnologias e culturas que permitem empresas


se transformarem digitalmente: Big Data, Microservices, Devops , Blockchain e
Inteligência Artificial.

https://www.linkedin.com/pulse/big-data-hands-criando-programas-hadoop-e-relat%C3%B3rios-adriano-gomes/?trackingId=AjM9sUZBnymjenywiQSLqg%3… 11/13
01/01/2018 Big Data! Hands On: criando programas em Hadoop e relatórios em 90 minutos. | LinkedIn

Academia Experimente
Pesquisar
Premium grátis

Bacharel em Ciência da Computação (PUC-SP).

Especialização em Arquitetura de Software (UNICAMP).

Especialização em Orientação a Objetos (UNICAMP).

MBA em TI (USP).

Técnico em Processamento de Dados (Flamingo).

Outro artigo

Construção de Software como "LEGO" . Como? Por quê?

adriano.arquiteto.ti@gmail.com

Denunciar

92 gostaram

+82

14 comentários

Exibir comentários anteriores

Leandro Silva 2 sem


So ware Architect Consultant at Sequenza IT Solutions

Ficou muito bom, Jordinha. :)


Gostei Responder 1 gostou

Bernardo Duarte 4d
Business Intelligence Consultant

Parabéns! Muito bom o material.


Gostei Responder 1 gostou

Adicione um comentário…

Adriano Gomes Batista dos Santos


TI - | Ciência da Computação | Arquitetura de Soluções | Transformação Digital |

Seguir

Mais de Adriano Gomes Batista dos Santos

https://www.linkedin.com/pulse/big-data-hands-criando-programas-hadoop-e-relat%C3%B3rios-adriano-gomes/?trackingId=AjM9sUZBnymjenywiQSLqg%3… 12/13
01/01/2018 Big Data! Hands On: criando programas em Hadoop e relatórios em 90 minutos. | LinkedIn

Construção de So ware como Experimente


Pesquisar
Premium grátis
"LEGO". Como? Por quê?
Adriano Gomes Batista dos Santos no Lin…

https://www.linkedin.com/pulse/big-data-hands-criando-programas-hadoop-e-relat%C3%B3rios-adriano-gomes/?trackingId=AjM9sUZBnymjenywiQSLqg%3… 13/13

Você também pode gostar