Apache Spark

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search

Apache Spark è un framework open source per il calcolo distribuito sviluppato dall'AMPlab della Università della California e successivamente donato alla Apache Software Foundation.

Descrizione[modifica | modifica wikitesto]

A differenza del paradigma MapReduce, basato sul disco a due livelli di Hadoop, le primitive "in-memory" multilivello di Spark forniscono prestazioni fino a 100 volte migliori per talune applicazioni[1]. Ciò permette ai programmi utente di caricare dati in un gruppo di memorie e interrogarlo ripetutamente, Spark è studiato appositamente per algoritmi di apprendimento automatico[2].

Spark richiede un gestore di cluster e un sistema di archiviazione distribuita. Per il primo supporta nativamente un cluster Spark, ma anche Hadoop YARN, o Apache Mesos, per il secondo Spark può interfacciarsi con Hadoop Distributed File System (HDFS), Apache Cassandra[3] , OpenStack Swift, Amazon S3, Apache Kudu, ma anche soluzioni personalizzabili. Spark supporta anche soluzioni pseudo-distribuite in modalità locale, usate di solito per lo sviluppo o scopo di test, dove l'archiviazione distribuita non è richiesta e si usa il file system locale; in tale scenario, Spark è eseguito su una macchina singola.

Il 28 febbraio 2018 è stata rilasciata la versione 2.3.0 di Apache Spark.[4]

Le interfacce[modifica | modifica wikitesto]

Le prime interfacce che sono state sviluppate per l'uso di Apache Spark sono gli insiemi di dati con capacità di recupero (in inglese resilient data sets, RDD). Queste interfacce hanno i controlli sui tipi, ma non sono ottimizzate.

Successivamente, sono state introdotte delle interfacce, dette intelaiature di dati (in inglese data frames) che possono essere ottimizzate dal motore di Apache Spark ed hanno delle prestazioni nettamente superiori, ma non hanno i controlli sui tipi di dato. Questo comporta la possibilità di avere molteplici errori a runtime.

Le interfacce più recenti sono dette insiemi di dati (in inglese data sets) e cercano di coniugare l'ottimizzazione ed i controlli sui tipi al momento della compilazione.

Note[modifica | modifica wikitesto]

  1. ^ (EN) Reynold Xin, Josh Rosen, Matei Zaharia, Michael Franklin, Scott Shenker e Ion Stoica, Association for Computing Machinery, Shark: SQL and Rich Analytics at Scale (PDF), SIGMOD '13, New York, 22-27 giugno 2013. URL consultato il 29 agosto 2017 (archiviato dall'url originale il 9 agosto 2017).
  2. ^ Matei Zaharia, Spark: In-Memory Cluster Computing for Iterative and Interactive Applications, su youtube.com, Invited Talk at NIPS 2011 Big Learning Workshop: Algorithms, Systems, and Tools for Learning at Scale.
  3. ^ Doan, DuyHai, Re: cassandra + spark / pyspark, su mail-archives.apache.org, 10-09-2014. URL consultato il 12 febbraio 2017.
  4. ^ Downloads | Apache Spark, su spark.apache.org. URL consultato il 29 marzo 2018.

Collegamenti esterni[modifica | modifica wikitesto]

Informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica