Che cosè Apache Spark? Dove si utilizza?

Apache Spark è un framework di elaborazione parallela open source per l’esecuzione di applicazioni di analisi dei dati su larga scala.

Apache Spark è un framework di elaborazione parallela open source per l’esecuzione di applicazioni di analisi dei dati su larga scala.

La versione 1.0 di Apache Spark è stata rilasciata a maggio 2014 e da allora è diventata il motore di elaborazione dati preferito. Questa tecnologia è stata progettata per la prima volta nel 2009 dai ricercatori dell’Università della California per accelerare i processi sui sistemi Hadoop.

È progettato specificamente per fornire velocità di calcolo e scalabilità per flusso di dati, dati grafici, apprendimento automatico e applicazioni di intelligenza artificiale.

Cos’è Apache Spark?


Apache Spark è un motore di elaborazione dati in grado di eseguire rapidamente attività in set di dati di grandi dimensioni, distribuendo anche attività di elaborazione dati su più computer da soli o insieme ad altri strumenti di elaborazione distribuiti. Questi due attributi sono fondamentali per i mondi dei big data e dell’apprendimento automatico, che regolano la potenza di calcolo necessaria per spostarsi rapidamente tra i repository di Big Data.

Spark può fornire connessioni native per i linguaggi di programmazione Java, Scala, Python e R e supporta operazioni come SQL, streaming di dati, machine learning e rendering grafico. È utilizzato da banche, società di telecomunicazioni, società di giochi, nonché dai principali giganti della tecnologia come Apple, Facebook, IBM e Microsoft.

Come funziona Apache Spark?


Apache Spark elabora i dati da vari repository come Hadoop Distributed File System (HDFS), database NoSQL e Apache Hive. Spark supporta l’elaborazione in memoria per migliorare le prestazioni delle applicazioni di analisi dei big data. Tuttavia, può anche eseguire l’elaborazione basata su disco quando i set di dati sono troppo grandi per adattarsi alla memoria di sistema disponibile.

Apache Spark ha un’architettura gerarchica. Il driver Spark è il nodo master che gestisce i nodi in esecuzione e controlla l’amministratore del cluster.

Il motore Spark Core usa set di dati distribuiti flessibili (RDD) come tipo di dati sottostante. RDD ha una struttura progettata per nascondere la complessità computazionale agli utenti. Il motore Spark Core raccoglie i dati e li sposta in un archivio dati diverso dove possono essere calcolati in seguito. Quindi lo divide in un cluster di server che può essere eseguito tramite il modello analitico. L’utente non ha bisogno di definire dove vengono inviati file specifici, quali risorse di calcolo verranno utilizzate per archiviare o recuperare i file.

Resilient Distributed Dataset RDD

(RDD) sono raccolte di elementi a tolleranza di errore che possono essere distribuiti tra più nodi in cluster e lavorati in parallelo. Gli RDD sono una struttura di base di Apache Spark.

Spark carica i dati mettendoli in parallelo in un RDD per elaborare una raccolta esistente con il metodo di parallelizzazione SparkContext. Dopo che i dati sono stati caricati in un RDD, esegue trasformazioni e azioni sugli RDD in memoria. Spark archivia anche i dati in memoria a meno che il sistema non esaurisca la memoria o l’utente decida di scrivere i dati su disco per la persistenza.

Ogni set di dati in RDD è suddiviso in segmenti logici che possono essere calcolati in diversi nodi del cluster. Gli utenti possono eseguire due tipi di azioni RDD: trasformazioni e azioni. Le trasformazioni sono operazioni per creare un nuovo RDD. Le azioni vengono utilizzate per indicare ad Apache Spark di applicare il calcolo e inviare il risultato al driver.

Architettura Apache Spark


L’implementazione di Apache Spark è costituita da due componenti principali. Il primo componente è un driver che distribuisce il codice dell’utente tra i nodi e lo converte in più attività. L’altro componente sono gli esecutori che eseguono le attività assegnate su questi nodi. È necessario un qualche tipo di gestore del cluster per mediare tra i due.

Spark può essere eseguito in una modalità cluster autonoma che richiede il framework Apache Spark e una JVM (Java Virtual Machine) su ogni macchina nel cluster. Hadoop YARN; significa trarre vantaggio da un sistema di gestione delle risorse o dei cluster più robusto. Inoltre, può essere eseguito su Apache Spark, Apache Mesos, Kubernetes e Docker Swarm.

Apache Spark genera i comandi dei dati degli utenti come Directed Acyclic Graph (DAG). DAG è il livello di temporizzazione di Apache Spark, determina su quali nodi e in quale ordine vengono eseguite le attività.

Librerie Spark
Spark Core funziona in parte come un livello API (Application Programming Interface). Oltre al motore di rendering Spark Core, l’ambiente API Apache Spark viene fornito con alcune librerie di codice da utilizzare nelle applicazioni di analisi dei dati. Queste biblioteche;

Spark SQL: una delle librerie più utilizzate, Spark SQL consente agli utenti di eseguire query sui dati archiviati in diverse applicazioni utilizzando il linguaggio SQL comune.

Spark Streaming: una libreria che gli consente di creare applicazioni che analizzano e presentano i dati in tempo reale.

MLlib: una libreria di codici di apprendimento automatico che consente agli utenti di applicare operazioni statistiche avanzate ai dati nei cluster Spark e creare applicazioni attorno a queste analisi.

GraphX ​​- Graph è una libreria di algoritmi incorporata per il calcolo parallelo.

Esempi di utilizzo di Apache Spark
Le società di pubblicità digitale utilizzano Spark per proteggere i database dei loro siti Web e per progettare campagne speciali per determinati consumatori. Le società finanziarie lo utilizzano per recuperare dati finanziari e guidare le attività di investimento. Le aziende di prodotti di consumo lo utilizzano per guidare le decisioni sull’inventario e identificare nuove opportunità di mercato, raccogliere dati sui clienti e prevedere le tendenze.

Le grandi organizzazioni che lavorano con applicazioni per big data utilizzano Spark per la sua velocità e capacità di connettere più database ed eseguire diversi tipi di applicazioni analitiche.

Autore

Classe Novanta3, Fondatore di TrgtKLS. Appassionato in Sec IT & Tech. Expert per l'amministrazione web server e supporto in Back-&, ottimizzazione e manutenzione di esso. • Metà Free e Metà Freelancer • [email protected]

Articoli correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *