Cloud computing is based on computing power and storage virtualization, obtained using an infrastructure composed by abstract hardware and software, accessible on the Internet. The cloud enables big data processing for enterprises of all sizes. Big data are a massive amount of structured and unstructured data, they are so large that they can be difficulty processed using traditional database and software approaches. When working with large datasets, it becomes difficult to create, manipulate and manage these data, in particular it becomes a problem to search and analyze the data. Big data applications provide new challenges in searching and enforcing relevant quality of services, in particular users may be interested in quantifying and constraining the execution time of each of the applications’ runs. One of the most commonly used cluster computing framework for big data analytics is Apache Spark, which provides a fast and general data processing platform, that allows quick in memory computation still being fault-tolerant. Spark computation is based on RDDs, a data abstraction, and DAGs, that represents the data manipulation process. xSpark, developed at Politecnico di Milano, propose an extension of Spark framework that offers fine-grained dynamic resource allocation using lightweight containers. xSpark allows users to force the duration of the execution of an application by specifying a deadline, this is possible thanks to the runtime allocation of resources requested during the execution by xSpark’s control loop, that is composed by a centralized heuristic part and a distributed local control theoretical one. This thesis has the goal of extending the work done with xSpark, in particular by supporting the execution of multiple applications in parallel, trying to satisfy the quality of service requested by the users. This has been successfully done by extending the controller model and by taking into account the existence of multiple application running in parallel that may contend the available resources. In absence of resource contention, applications behave as if they were running alone in the cluster, meanwhile in presence of contention we are able to reduce the number of deadline violations picking the right strategy.

Il cloud computing è basato sulla virtualizzazione della potenza di calcolo e dell’archiviazione dei dati, ottenuto tramite un’infrastruttura di dispositivi hardware e software astratti e accessibili tramite Internet. Il cloud permette ad aziende di qualsiasi dimensione di eseguire applicazioni big data. I big data vengono descritti come un’enorme mole di dati strutturati e non, che sono talmente grandi da essere difficilmente elaborabili tramite basi di dati e approcci software tradizionali. Quando si lavora con grandi set di dati, diventa difficile creare, manipolare e organizzare questi dati, in particolare ricercare e analizzare questi dati diventa un problema. Uno dei principali framework di cluster computing per analisi di big data è Apache Spark, che offre una piattaforma per elaborare dati in modo veloce e generalizzato, permettendo una rapida computazione mantendo i dati in memoria e rimanendo allo stesso tempo tollerante agli errori. L’esecuzione di Spark è basata su RDD, un’astrazione dei dati, e DAG, che rappresenta il processo di manipolazione dei dati. Le applicazioni big data pongono nuove sfide nel cercare e imporre qualità del servizio rilevanti, in particolare gli utenti sono interessati nel quantificare e limitare la durata delle singole esecuzioni di queste applicazioni. xSpark, sviluppato presso il Politecnico di Milano, propone un’estensione del framework Spark in grado di offrire allocazione dinamica delle risorse a grana fine usando i container. xSpark permette agli utenti di forzare la durata dell’esecuzione delle applicazioni specificando una deadline, questo è reso possibile tramite l’allocazione delle risorse richieste durante l’esecuzione dal controllore presente in xSpark, composto da una parte euristica centralizzata e da una parte distribuita fondata sulla teoria del controllo. Questa tesi ha l’obiettivo di estendere il lavoro fatto con xSpark, in particolar modo si vuole supportare l’esecuzione di più applicazioni in parallelo, cercando di rispettare le qualità del servizio richieste dagli utenti. Questo è stato reso possibile estendendo il modello del controllore e tenendo in considerazione la possibile esistenza di più applicazioni che vengono eseguite in parallelo, e che quindi potrebbero contendersi le risorse disponibili. In assenza di contesa di risorse tra le applicazioni, esse si comportano come se stessero eseguendo da sole nel cluster, mentre in presenza di contesa, siamo in grado di ridurre il numero di violazioni della deadline scegliendo la strategia più adeguata.

X-Spark : managing concurrent QoS-constrained big data applications through dynamic resource provisioning

RIPAMONTI, SIMONE
2016/2017

Abstract

Cloud computing is based on computing power and storage virtualization, obtained using an infrastructure composed by abstract hardware and software, accessible on the Internet. The cloud enables big data processing for enterprises of all sizes. Big data are a massive amount of structured and unstructured data, they are so large that they can be difficulty processed using traditional database and software approaches. When working with large datasets, it becomes difficult to create, manipulate and manage these data, in particular it becomes a problem to search and analyze the data. Big data applications provide new challenges in searching and enforcing relevant quality of services, in particular users may be interested in quantifying and constraining the execution time of each of the applications’ runs. One of the most commonly used cluster computing framework for big data analytics is Apache Spark, which provides a fast and general data processing platform, that allows quick in memory computation still being fault-tolerant. Spark computation is based on RDDs, a data abstraction, and DAGs, that represents the data manipulation process. xSpark, developed at Politecnico di Milano, propose an extension of Spark framework that offers fine-grained dynamic resource allocation using lightweight containers. xSpark allows users to force the duration of the execution of an application by specifying a deadline, this is possible thanks to the runtime allocation of resources requested during the execution by xSpark’s control loop, that is composed by a centralized heuristic part and a distributed local control theoretical one. This thesis has the goal of extending the work done with xSpark, in particular by supporting the execution of multiple applications in parallel, trying to satisfy the quality of service requested by the users. This has been successfully done by extending the controller model and by taking into account the existence of multiple application running in parallel that may contend the available resources. In absence of resource contention, applications behave as if they were running alone in the cluster, meanwhile in presence of contention we are able to reduce the number of deadline violations picking the right strategy.
QUATTROCCHI, GIOVANNI
ING - Scuola di Ingegneria Industriale e dell'Informazione
21-dic-2017
2016/2017
Il cloud computing è basato sulla virtualizzazione della potenza di calcolo e dell’archiviazione dei dati, ottenuto tramite un’infrastruttura di dispositivi hardware e software astratti e accessibili tramite Internet. Il cloud permette ad aziende di qualsiasi dimensione di eseguire applicazioni big data. I big data vengono descritti come un’enorme mole di dati strutturati e non, che sono talmente grandi da essere difficilmente elaborabili tramite basi di dati e approcci software tradizionali. Quando si lavora con grandi set di dati, diventa difficile creare, manipolare e organizzare questi dati, in particolare ricercare e analizzare questi dati diventa un problema. Uno dei principali framework di cluster computing per analisi di big data è Apache Spark, che offre una piattaforma per elaborare dati in modo veloce e generalizzato, permettendo una rapida computazione mantendo i dati in memoria e rimanendo allo stesso tempo tollerante agli errori. L’esecuzione di Spark è basata su RDD, un’astrazione dei dati, e DAG, che rappresenta il processo di manipolazione dei dati. Le applicazioni big data pongono nuove sfide nel cercare e imporre qualità del servizio rilevanti, in particolare gli utenti sono interessati nel quantificare e limitare la durata delle singole esecuzioni di queste applicazioni. xSpark, sviluppato presso il Politecnico di Milano, propone un’estensione del framework Spark in grado di offrire allocazione dinamica delle risorse a grana fine usando i container. xSpark permette agli utenti di forzare la durata dell’esecuzione delle applicazioni specificando una deadline, questo è reso possibile tramite l’allocazione delle risorse richieste durante l’esecuzione dal controllore presente in xSpark, composto da una parte euristica centralizzata e da una parte distribuita fondata sulla teoria del controllo. Questa tesi ha l’obiettivo di estendere il lavoro fatto con xSpark, in particolar modo si vuole supportare l’esecuzione di più applicazioni in parallelo, cercando di rispettare le qualità del servizio richieste dagli utenti. Questo è stato reso possibile estendendo il modello del controllore e tenendo in considerazione la possibile esistenza di più applicazioni che vengono eseguite in parallelo, e che quindi potrebbero contendersi le risorse disponibili. In assenza di contesa di risorse tra le applicazioni, esse si comportano come se stessero eseguendo da sole nel cluster, mentre in presenza di contesa, siamo in grado di ridurre il numero di violazioni della deadline scegliendo la strategia più adeguata.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2017_12_Ripamonti.pdf

accessibile in internet per tutti

Descrizione: Testo della tesi
Dimensione 18.95 MB
Formato Adobe PDF
18.95 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/137544