Criar um ecossistema dentro do Hadoop com o armazenamento de dados
O arquivo utilizado para a atividade é um dataset de Jogos de Futebol no Brasil. O dataset é em formato .csv e tem cerca de 14 mil valores registrados
Dentro do Hadoop File System nós escolhemos seguir com a seguinte organização
Jogos/Tipo/Torneio/Semanas
Sendo considerado a periodicidade Semanal para seguir mais ou menos com as rodadas de cada campeonato Jogos -> Arquivo Base Tipo -> Separação entre campeonatos Regionais e Nacionais Torneio -> Separação por torneio Semanas -> Separação com peridiocidade semanal para ser similar as rodadas do campeonato
Para inserir os dados nós iremos primeiro criar as pastas necessárias com o comando dentro do Bash:
hadoop fs -mkdir Nome_do_diretório
Após utilizar este comando para crias as pastas nós ficaremos com os seguintes parâmetros. Para ver os arquivos e pastas dentro do repositório podemos utilizar:
hadoop fs -ls Nome_do_diretório
Que nos traz os seguintes resultados
Os dados foram inicialmente baixados na máquina local, então precisamos deixar o arquivo base dentro do Docker e posteriormente passar para dentro do HDFS.
Para fazer essa cópia nós podemos utilizar:
docker cp BR-Football-Dataset.csv namenode:/BR-Football-Dataset.csv
Mas como iremos separar os arquivos de forma semanal, nós precisamos fazer isso de forma automático e não ficar separando e criando um único arquivo por vez. Para realizar esta atividade nós podemos utilizar o seguinte Script SH para realizar a função dentro do Docker utilizando o arquivo original.
#O arquivo original
folder="/BR-Football-Dataset.csv"
# nome do diretório onde eu quero colocar
hdfs_dir="/Brazilian_Football/Type/National/Copa_do_Brasil"
#Definindo o padrão como Semana_Num
nome_arquivo="Semana_"
#Quantidade de vezes que irá repetir
n_weeks=20
# Loop de 1 a 20 para copiar e renomear os arquivos
for i in $(seq 1 $n_weeks)
do
# Define o nome do arquivo original
dir_hdfs="/Brazilian_Football/Type/National/Copa_do_Brasil/$nome_arquivo$i"
#COMANDO hdfs para inserir os dados
hdfs dfs -put $folder $dir_hdfs
#print do sistema para monitoramento
echo "Inserindo arquivo no diretorio de $dir_hdfs"
done
Checkpoint do cmd mostrando os valores inseridos em cada pasta
dentro do HUE para fácil visualização:
Agora nós apenas precisamos mudar o caminho final do HDFS para realizar a cópia correta desses arquivos com a nomemclatura certa.
Para realizar os BackUps nós decidimos construir as pastas de Backups para cara torneio em cada semanal. Ou seja, o BackUp dos arquivos de CSV será feito de forma semanal junto com a entrega dos dados. Desta forma as pastas estão situadas nos diretório
/jogos/Tipo/Torneio/BKP/Semana
Como o intuito da atividade é simular um ecossitema real, nós pensamos que um possível ecossistema de dados para essas soluções da seguinte forma:
Assim, nós conseguimos nós assegurar da entrega continua dos dados, a construção do BackUp e também a agilidade de esses dados seriam entregues para as áreas de negócios.