Un motore di analisi unificato per l'elaborazione di dati distribuiti su larga scala con API in Java, Scala, Python e R per batch, streaming, ML e grafici
Apache Spark è un motore di analisi open-source utilizzato per carichi di lavoro Big Data. È in grado di gestire l'analisi e l'elaborazione dei dati sia in batch sia in tempo reale. Apache Spark è nato nel 2009 come progetto di ricerca presso l'Università di Berkeley, in California con l'obiettivo di trovare un modo per velocizzare l'elaborazione dei dati nei sistemi Hadoop. Apache Spark si basa su Hadoop MapReduce e ne estende il modello per utilizzarlo in modo efficiente durante altri tipi di operazioni, incluse query interattive ed elaborazione di flussi di dati. Spark offre binding nativi per i linguaggi di programmazione Java, Scala, Python e R. Inoltre, include diverse librerie per supportare la creazione di applicazioni per il machine learning [MLlib], l'elaborazione di dati in streaming [streaming Spark] e l'elaborazione di grafici [GraphX]. Apache Spark è composto da Spark Core e da una serie di librerie. Spark Core è il cuore di Apache Spark ed è responsabile della trasmissione distribuita dei task, della pianificazione e delle funzionalità di I/O. Il motore Spark Core utilizza Resilient Distributed Dataset (RDD) come tipo di dati sottostante. L'RDD è progettato in modo da nascondere la maggior parte della complessità computazionale agli utenti. Spark opera sui dati in modo intelligente; dati e partizioni vengono aggregati su un cluster di server, dove possono essere elaborati e successivamente spostati in un altro archivio di dati o eseguiti attraverso un modello analitico. Non è necessario che l'utente specifichi la destinazione dei file o le risorse di calcolo da utilizzare per archiviarli o recuperarli. 