Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/emelis-ptr/sabd2
Progetto: Sistemi e Architetture per Big Data
https://github.com/emelis-ptr/sabd2
ais big-data docker flink java kafka
Last synced: 24 days ago
JSON representation
Progetto: Sistemi e Architetture per Big Data
- Host: GitHub
- URL: https://github.com/emelis-ptr/sabd2
- Owner: emelis-ptr
- Created: 2021-06-13T19:06:01.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-03-17T19:03:07.000Z (almost 2 years ago)
- Last Synced: 2024-11-10T22:39:12.196Z (3 months ago)
- Topics: ais, big-data, docker, flink, java, kafka
- Language: Java
- Homepage:
- Size: 86.7 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
`Sistemi e architetture per Big Data - Progetto Due`
-
Lo scopo del progetto è rispondere ad alcune query riguardanti un dataset relativo a dati provenienti da dispositivi
Automatic Identification System(AIS), utilizzando il framework Apache Flink.*`Queries`*
-1. **Query uno**:
Calcolare per ogni cella del Mar Mediterraneo Occidentale2, il numero medio di navi militari (SHIPTYPE= 35), navi per
trasporto passeggeri (SHIPTYPE = 60-69), navi cargo (SHIPTYPE = 70-79) eothers(tutte le navi che non hanno uno
SHIPTYPE che rientri nei casi precedenti) negli ultimi 7 giorni (dievent time) e 1 mese (di event time).2. **Query due**:
Per il Mar Mediterraneo Occidentale ed Orientale3fornire la classifica delle tre celle pi`u frequentatenelle due
fasce orarie di servizio 00:00-11:59 e 12:00-23:59. In una determinata fascia oraria, il grado di frequentazione di
una cella viene calcolato come il numero di navi diverse che attraversano la cella nella fascia oraria in esame*`Prerequisiti`*
-
Il progetto è stato eseguito in un ambiente Windows. Bisogna installare docker:- [[https://docs.docker.com/docker-for-windows/install/][Docker per Windows]]
- E' necessario aver installato:
- maven
- java*`Architettura`*
-
- **Docker** per la gestione dei container;
- **Flink**: come data stream processing;
- **Kafka**: utilizzato per pubblicare, sottoscrivere, ed elaborare flussi di record in tempo reale*`Struttura del progetto`*
-All'interno delle cartelle:
`Docker`
- docker-compose.yml: per la creazione dei container:
- zookeeper
- kafka- cartella scripts:
- start-docker
- stop-docker`data`
contiene il dataset csv`results`: contiene i risultati
`output` : contiene i risultati ottenuti con kafka consumer
`src`
- **main package**
- FlinkMain: esegue data stream processing
- Producer: legge il file e pubblica i record in un topic di Kafka
- Consumer: salva i record di un topic in file csv- **flink package**
- classi sulle query uno e due che determinano la tipologia usata per ottenere il risultato delle due queries
- **kafka package**
- classi per l'interazione con kafka per poter produrre i dati e salvarli su un topic, pubblicare i risultati e
consumarli- **benchmarks**
- classe per effetturare una valutazione sulla latenza e throughput
### *`Istruzioni`*
- Per la creazione del file java eseguire:
mvn clean compile assembly:single
- Per eseguire l'applicazione è possibile farlo su IntelliJ o attraverso il comando:
java -cp ./target/SABD-ProjectTwo-1.0-SNAPSHOT-jar-with-dependencies.jar main.*nomeclasse*.
Bisogna avviare prima la classe FlinkMain e poi avviare la classe Producer per scrivere i record nel topic.
### **Framework**
- Apache Flink: localhost:8081