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.
- Criação de diretórios
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
$ 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
$ hdfs dfs -ls /user/<seu_login>/salesbycard
Copie o dataset Sales.txt para o diretório de leitura do arquivo de entrada do programaMapReduce a ser criado:
$ cd
$ cd Projetos/SalesByCard$ hdfs dfs -copyFromLocal input/ /user/<seu_login>/salesbycard
$ cd Projetos/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
$ hdfs dfs -ls /user/<seu_login>/salesbycard/input/
- Criação do programa executável
$ javac -d . -cp `hadoop classpath` PCMapper.java PCReducer.java Driver.java
- 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>
$ 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:
- Output gerado pelo programa