Processamento di dati riferiti alle corse taxi della città di New York tramite il framework Apache Spark ed il modulo ad alto livello SparkSQL.
Dataset:
- yellow_tripdata_2021-12.parquet
- yellow_tripdata_2022-01.parquet
- yellow_tripdata_2022-02.parquet
- Caricare i tre parquet che compongono il dataset nella directory
/data. - Fornire i permessi di scrittura alla directory
/nifi
chmod 777 nifi/*- Eseguire il build dell'immagine docker HDFS
cd docker/build
sudo docker build -t matnar/hadoop:3.3.2 .- Eseguire il build del progetto tramite Maven, spostandosi prima nella directory SABD_proj1/
mvn package- Effettuare il deployment dei nodi necessari tramite il tool di orchestrazione docker-compose
cd docker
sudo docker-compose upoppure
cd docker
sudo docker compose up- Avviare il nodeformat di HDFS e il flusso di pre-processamento NIFI tramite script python
cd docker
python3 start-all.py- Opzionalmente è possibile rimuovere il container NiFi al termine del pre-processamento per ottenere aggravare meno sulle risorse della macchina locale
docker stop nifi-master
docker rm nifi-master- Al termine del setup precedente, eseguire singolamente le query desiderate tramite script bash.
cd docker
sh executeSpark.sh Main {query_name} {execution_mode}- query_name =
Q1 / Q2 / Q3 / Q1SQL / Q2SQL / Q3SQL - execution_mode =
LOCAL / DOCKER(modalità local utilizzata solamente in fase di sviluppo).
I risultati delle singole query vengono salvati nella cartella Results in formato .csv.
Sono inoltre disponisibili i tempi di esecuzioni delle query.
Per avere una visualizzazione grafica dei risultati delle query, è possibile accedere ad una dashboard Grafana al seguente link locale.