Quali sono alcuni concorrenti di Apache Spark?


Migliore risposta

Per quanto riguarda il framework nel suo insieme: in questo momento Apache Spark è un passo avanti rispetto ai suoi concorrenti , a causa di alcune caratteristiche come limplementazione (e lintegrazione) di strumenti diversi e molto utili (Spark SQL e MLlib solo per citarne due) e la capacità di memorizzare dati intermedi negli RDD. Per questo motivo, molti sviluppatori si stanno concentrando su di esso e la mia ipotesi è che fino a quando non si presenterà un nuovo passo avanti nella tecnologia sottostante, qualsiasi concorrente sarà trascurabile.

Diversamente, se si considerano le singole implementazioni su Apache Spark, puoi identificare alcuni concorrenti: H2O è uno sfidante di Spark MLlib, Storm (ha sottolineato Joe) è unalternativa allo streaming di Spark e là fuori ci sono diversi motori simili a SQL che possono essere paragonati a Spark SQL .

Risposta

Ecco alcuni JARGON di Apache Spark che userò.

Lavoro: – Un pezzo di codice che legge un input da HDFS o locale, esegue alcuni calcoli sui dati e scrive alcuni dati di output.

Fasi: -I lavori sono divisi in fasi . Le fasi sono classificate come una mappa o riducono le fasi (è più facile capire se hai lavorato su Hadoop e desideri correlarle). Le fasi sono divise in base ai limiti computazionali, tutti i calcoli (operatori) non possono essere aggiornati in una singola fase. Succede in molte fasi.

Attività: – Ogni fase ha alcune attività, una per partizione. Unattività viene eseguita su una partizione di dati su un esecutore (macchina).

DAG – DAG sta per Directed Acyclic Graph, nel contesto attuale è un DAG di operatori.

Executor – Il processo responsabile dellesecuzione di unattività.

Driver: il programma / processo responsabile dellesecuzione del lavoro su Spark Engine

Master: la macchina su cui viene eseguito il programma Driver

Slave – La macchina su cui gira il programma Executor

Tutti i lavori in spark comprendono una serie di operatori e vengono eseguiti su un insieme di dati. Tutti gli operatori in un lavoro vengono utilizzati per costruire un DAG (Directed Acyclic Graph). Il DAG è ottimizzato riorganizzando e combinando gli operatori ove possibile. Ad esempio, supponiamo di dover inviare un lavoro Spark che contiene unoperazione di mappa seguita da unoperazione di filtro. Lottimizzatore del DAG Spark riorganizzerebbe lordine di questi operatori, poiché il filtraggio ridurrebbe il numero di record da sottoporre a operazione di mappa.

Spark ha una piccola base di codice e il sistema è diviso in vari livelli. Ogni strato ha delle responsabilità. I livelli sono indipendenti luno dallaltro.

  1. Il primo livello è interprete , Spark utilizza un interprete Scala, con alcune modifiche.
  2. Quando inserisci il tuo codice in Spark Console (creazione di RDD e applicazione di operatori ), Spark crea un grafico operatore.
  3. Quando lutente esegue unazione (come collect), il grafico viene inviato a uno scheduler DAG. Lo scheduler DAG divide il grafico delloperatore in fasi (mappa e riduzione).
  4. Una fase è composta da attività basate su partizioni dei dati di input. Lo scheduler del DAG riunisce gli operatori per ottimizzare il grafico. Ad esempio, molti Gli operatori di mappe possono essere programmati in una singola fase. Questa ottimizzazione è fondamentale per le prestazioni di Sparks. Il risultato finale di uno scheduler del DAG è un insieme di fasi.
  5. Le fasi vengono trasmesse al Utilità di pianificazione . Lutilità di pianificazione avvia le attività tramite cluster manager . (Spark Standalone / Yarn / Mesos). Lutilità di pianificazione non conosce le dipendenze tra gli stadi.
  6. Il Worker esegue le attività sullo Slave. Viene avviata una nuova JVM per LAVORO. Il worker conosce solo il codice che gli viene passato.

Spark memorizza nella cache i dati da elaborare, permettendomi 100 volte più velocemente di hadoop. Spark utilizza Akka per il multithreading, gestione dello stato dellesecutore, pianificazione delle attività. Utilizza Jetty per condividere file (Jars e altri file), Http Broadcast, eseguire Spark Web UI. Spark è altamente configurabile ed è in grado di utilizzare i componenti esistenti già esistenti nellecosistema Hadoop. Ciò ha permesso a Spark di crescere in modo esponenziale e in poco tempo molte organizzazioni lo stanno già utilizzando in produzione.

Puoi guardare

per capire le cose in modo più dettagliato.

Lascia un commento

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