Este repositorio contiene un sistema de análisis de películas desarrollado como trabajo práctico para la materia Sistemas Distribuidos I (75.74) de la Facultad de Ingeniería de la Universidad de Buenos Aires.
El sistema está compuesto por múltiples programas distribuidos que, en conjunto, procesan queries específicas sobre tres datasets de películas provistos por IMDB.
Las consultas ejecutadas sobre el dataset son:
- Películas y sus géneros producidas en los años 2000 en Argentina y España.
- Top 5 de países que más dinero invirtieron en producciones sin colaboración internacional.
- Película argentina estrenada a partir del año 2000 con mayor y menor promedio de rating.
- Top 10 de actores con mayor participación en películas argentinas estrenadas desde el año 2000.
- Promedio de la relación ingreso/presupuesto para películas con sentimiento positivo vs. negativo (según su descripción).
Los datasets no están incluidos en este repositorio y deben descargarse manualmente desde Kaggle - The Movies Dataset. El sistema requiere únicamente los siguientes archivos:
movies_metadata.csvcredits.csvratings.csv
Deben colocarse en un directorio datasets/ en la raíz del proyecto, con los siguientes nombres exactos:
datasets/movies_metadata.csv
datasets/credits.csv
datasets/ratings.csv
-
Preparar los datasets Descargar y ubicar los tres archivos mencionados anteriormente en el directorio
datasets/. -
Generar el archivo de configuración
docker-compose.yamlDesde la raíz del proyecto:make generate_compose
-
Construir los contenedores
make build_docker
-
Iniciar la ejecución distribuida
make run_docker
-
Ejecutar el cliente En otra terminal, ingresar al directorio
client/, instalar las dependencias necesarias (se recomienda el uso de un entorno virtual), y correr el cliente:python3 main.py
El cliente imprimirá una
UUIDque identifica los resultados de la consulta. -
Ver resultados Los resultados estarán disponibles en el directorio:
client/results/{uuid}/ -
Verificar resultados Desde la raíz del proyecto:
make verify_results
-
Detener la ejecución
make stop_docker
Para modificar parámetros de configuración (como rutas, nombres de servicios, variables de entorno, etc.), lo más recomendable es editar directamente el archivo compose-spec.json.
Este archivo puede generarse automáticamente usando make generate_compose.
Para más información sobre la configuración y generación de este archivo, consultar el archivo scripts/README.md.