Skip to content

GiuliaNardicchia/big-data-project

Repository files navigation

Progetto - Big Data course (81932), University of Bologna

Datasets

Il dataset originale è stato fornito da Kaggle al seguente link: Flight Prices (31.09 GB).

I datasets usati per questo progetto sono stati campionati sul dataset originale con le seguenti percentuali: 2%, 16% e 33%; e sono stati caricati nella cartella Datasets di OneDrive, per facilitarne il download:

Organizzazione di file e cartelle

Amazon Web Services (AWS)

I seguenti script sono stati creati per gestire più facilmente le operazioni da effettuare da linea di comando. Sono stati eseguiti con la shell Git Bash.

Per avviare una nuova sessione su AWS, eseguire lo script start_aws_session.sh. Verranno richieste le seguenti informazioni:

  • AWS PROFILE NAME
  • AWS Access Key ID AWS details > AWS CLI > aws_access_key_id
  • AWS Secret Access Key AWS details > AWS CLI > aws_secret_access_key
  • Default region name us-east-1
  • Default output format json
  • AWS Session Token AWS details > AWS CLI > aws_session_token
  ./aws/start_aws_session.sh

Eseguire lo script create_aws_cluster.sh per avviare un cluster Amazon EMR utilizzando Hadoop e Spark. Al suo interno viene eseguito anche lo script security_group_ingress.sh per creare un Security Group di nome ElasticMapReduce-master (se non esiste già) con le seguenti regole:

  • IpProtocol: tcp
  • FromPort: 22
  • ToPort: 22
  • IpRanges: [{CidrIp=0.0.0.0/0}]

Il cluster creato avrà le seguenti caratteristiche:

  • Versione di EMR: emr-7.3.0
  • Applicazioni installate: Hadoop e Spark
  • Gruppo di istanze:
    • MASTER: una istanza di tipo m4.large (2 cores, 8GB di RAM)
    • CORE: 6 istanze di tipo m4.large (2 cores, 8GB di RAM)

In input verrà richiesto l'inserimento di: AWS PROFILE NAME e KEY PAIR NAME. Una volta creato il cluster verrà visualizzato il ClusterID e lo script rimarrà in esecuzione fino a quando lo stato del Cluster non sarà passato da STARTING a WAITING, viene effettuato un controllo ogni 10 secondi. Al termine, verrà mostrato su console anche il PublicDNS, utile in seguito per l'SSH Configuration.

  ./aws/create_aws_cluster.sh

Build .jar

Per ottenere il .jar dell'applicazione, eseguire a linea di comando:

  ./gradlew

Verrà salvato all'interno della cartella build/libs/.

Local configuration

Spark local configurations:

  • Spark home: C:/spark-3.5.1-bin-hadoop3
  • Application: build/libs/ProjectBigData.jar
  • Class: MainApplication
  • Run arguments: local 1 oppure local 2
  • Cluster manager: local
  • Master: local[*]

All'interno del file conf/spark-defaults.conf nella cartella C:/spark-3.5.1-bin-hadoop3, sono stati impostati i seguenti valori:

  • Driver memory: 4g
  • Driver cores: 4

Remote configuration

Spark remote configurations:

  • Remote target: EMR: Big Data Cluster
    • SSH configuration (una volta configurato verificare che Test Connection restituisca Successfully connected!)
      • Host: inserire il PublicDNS ottenuto in seguito alla creazione del cluster
      • Authentication type: KeyPair
      • Private key file: inserire il path del file .ppk
  • Application: build/libs/ProjectBigData.jar
  • Class: MainApplication
  • Run arguments: remote 1/sharedRemote 1 oppure remote 2/sharedRemote 2

Sotto la voce Additional customization, selezionare Spark configuration ed Executor.

  • Spark configuration
    • Cluster manager: Hadoop YARN
    • Deploy mode: Cluster oppure Client
  • Executor parameters
    • Executor cores: 2
    • Executor number: 6
    • Executor memory: 5g

Author

About

Project - Big Data course (81932), University of Bologna

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages