Este projeto apresenta um recomendador de conteúdo, criado a partir do Apache Hadoop e Apache Mahout. Criamos esta arquitetura a partir de uma plataforma Linux (Ubuntu 12.0.4) 64 bits e Docker 1.5.0. Os procedimentos a seguir descrevem passo a passo a configuração do ambiente e a execução do recomendador de conteúdo.
Após descarregar o projeto, entre no diretório e execute o seguinte comando para executar a build do Docker:
docker build -t instance-name .
Certifique-se de que a build foi executada corretamente e de que todos os downloads foram executados. Agora você pode criar uma instância Docker dessa máquina. Veja:
docker run -d -P --name instance-name instance-name
Execute o comando a seguir para descobrir a porta ssh que a instância foi disponibilizada:
docker port instance-name
Agora você pode se conectar a instância usando ssh. A senha é: 'screencast'.
ssh root@localhost -p ssh-port
Uma vez conectado a instãncia, crie uma formate a partição do Hadoop para que possamos trabalhar com arquivos. Veja:
hadoop namenode -format
Inicie o Hadoop.
start-all.sh
Entre no diretório ml-100k.
cd ml-100k
Registre o arquivo u.data no Hadoop File System.
hadoop fs -put u.data u.data
Execute o Job de recomendação de conteúdo do Mahout e aguarde o processamento.
hadoop jar /opt/mahout-distribution-0.9/mahout-core-0.9-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -s SIMILARITY_COOCCURRENCE --input u.data --output output
Recupere a lista de recumendação do Hadoop File System e salve em um arquivo chamado output.txt
hadoop fs -getmerge output output.txt
O arquivo output.txt contém o identificador do usuário, seguido de uma lista de conteúdos (id e nota) a serem recomendados. Escrevemos uma rotina Python que apresenta os resultados de forma mais legível. Veja a seguir como executar essa rotina:
python show_recommendations.py user-id u.data u.item output.txt
Substitua o atributo user-id pelo identificador do usuário que deseja fazer a recomendação, por exemplo: 10.