Sales by Card

Programação Java - MapReduce
_______________________________________________________________________

Este tutorial mostra como ciar o programa executável java salesbycard.jar utilizando programas em java já criados em conformidade com o framework MapReduce compactados, juntamente com o dataset de input, no arquivo salesbycard.tar,gz.

O programa lista o valor total de vendas por Cartão de Crédito, a partir dos dados do dataset Sales.csv.

  • Criação de diretórios

O aquivo salesbycard.tar.gz deve ser baixado para o seu direrório de usuário linux (ou simulado pelo WSL do windows) e descompactado.

Se estiver usando o WSL, configure o seu terminal ubuntu para ser acessivel.

Entre no explorador de arquivos do Windows:



Clique com o botão direito no cone do Linux e escolha Fixar no Acesso rápido:

Agora o diretório do linux estará visivel para receber downloads de URLs.

Criar os diretórios de trabalho no linux, onde os arquivos de programa e dataset devem ser colocados. 

Os arquivos de programas devem estar no diretório /home/<seu_usuário>/projetos/salesbycard e o dataset deve estar no diretório /home/<seu_usuário>/Projetos/SalesByCard/input.

$ cd
$ mkdir Projetos
$ cd Projetos
$ mkdir SalesByCard
$ cd Projetos/SalesByCard
 


A figura acima mostra como escolher do local para download - o arquivo deverá ser baixado para o diretório /home/<seu-login>/Projetos/SalesByCard do linux WSL-ubuntu.  

Nota: Substituir <seu login> pelo nome de seu usuário.

Descompacte o arquivo baixado:

$ tar -xvzf salesbycard.tar.gz

O dataset Sales.csv deve ser carregado no diretório input do Hadoop. Primeiramente devemos criá-los.

Crie os seguintes diretórios no hdfs do Hadoop:

$ hdfs dfs -mkdir /user/<seu_login>/salesbycard 
hdfs dfs -ls /user/<seu_login>/salesbycard

Copie o dataset Sales.txt para o diretório de leitura do arquivo de entrada do programa
MapReduce a ser criado:

$ cd
$ cd Projetos/SalesByCard
$ hdfs dfs -copyFromLocal input/ /user/<seu_login>/salesbycard

Verifique se o dataset foi corretamente copiado:

$ hdfs dfs -ls /user/<seu_login>/salesbycard
$ hdfs dfs -ls /user/<seu_login>/salesbycard/input/


  • Criação do programa executável

Criar as classes java:

$ cd 
$ cd projetos/SalesByCard
$ ls Manifest.txt
$ ls *.java
$ javac -d . -cp `hadoop classpath` PCMapper.java PCReducer.java Driver.java


Verificar se as classes java foram corretamente criadas:

$ ls SalesByCard

Criar o programa java executável :

$ jar cfm salesbycard.jar Manifest.txt SalesByCard/*.class

  • Execução do programa

O programa irá produzir um dataset como saída, o qual será criado no dirterório /user/<seu login>/salesbycard/output no hdfs do Hadoop. 

Se este diretório já tiver sido criado por execução anterior, delete-o antes de executar o programa novamente:

$ hdfs dfs -rm -r /user/<seu_login>/salesbycard/output

Executar o programa no Hadoop:

$ hadoop jar salesbycard.jar <seu_login>

  • Output gerado pelo programa
Verificar a saída gerada:

$ hdfs dfs -ls /user/<seu_login>/salesbycard/output
$ hdfs dfs -cat /user/<seu_login>/salesbycard/output/part-00000