Articles

Learn SparkContext-Introduzione e funzioni

Rimani aggiornato con le ultime tendenze tecnologiche
Unisciti a DataFlair su Telegram!!

Objective

SparkContext è la porta di ingresso della funzionalità di Apache Spark. Il passo più importante di qualsiasi applicazione Spark driver è quello di generare SparkContext. Consente all’applicazione Spark di accedere al cluster Spark con l’aiuto di Resource Manager (YARN/Mesos). Per creare SparkContext, prima SparkConf dovrebbe essere fatto. SparkConf ha un parametro di configurazione che la nostra applicazione driver Spark passerà a SparkContext.
In questo tutorial Apache Spark, capiremo profondamente cos’è SparkContext in Spark. Come creare la classe SparkContext in Spark con l’aiuto del programma Spark-Scala word count. Impareremo anche varie attività di SparkContext e come fermare SparkContext in Apache Spark.

Quindi, iniziamo SparkContext tutorial.

Scopri SparkContext - Introduzione e funzioni

Scopri SparkContext – Introduzione e funzioni

Scopri come installare Apache Spark in modalità standalone e l’installazione di Apache Spark in un cluster multi-nodo.

Che cos’è SparkContext in Apache Spark?

SparkContext è il punto di ingresso della funzionalità Spark. Il passo più importante di qualsiasi applicazione Spark driver è quello di generare SparkContext. Consente all’applicazione Spark di accedere al cluster Spark con l’aiuto di Resource Manager. Il resource manager può essere uno di questi tre – Spark Standalone, YARN, Apache Mesos.

Come creare la classe SparkContext?

Se si desidera creare SparkContext, prima SparkConf dovrebbe essere fatto. SparkConf ha un parametro di configurazione che la nostra applicazione driver Spark passerà a SparkContext. Alcuni di questi parametri definiscono le proprietà dell’applicazione Spark driver. Mentre alcuni sono utilizzati da Spark per allocare risorse sul cluster, come il numero, la dimensione della memoria e i core utilizzati da executor in esecuzione sui nodi worker.
In breve, guida come accedere al cluster Spark. Dopo la creazione di un oggetto SparkContext, possiamo richiamare funzioni come textFile, sequenceFile, parallelize ecc. I diversi contesti in cui può essere eseguito sono local, yarn-client, Mesos URL e Spark URL.
Una volta creato SparkContext, può essere utilizzato per creare RDDS, broadcast variable e accumulator, ingress Spark service e run job. Tutte queste cose possono essere eseguite fino all’arresto di SparkContext.

Arresto di SparkContext

Solo uno SparkContext può essere attivo per JVM. È necessario interrompere l’attivo prima di crearne uno nuovo come di seguito:
stop(): Unit
Visualizzerà il seguente messaggio:
INFO SparkContext: arrestato con successo SparkContext

Spark Scala Word Count Example

Vediamo come creare SparkContext usando SparkConf con l’aiuto di Spark-Scala word count example-

package com.dataflair.spark
importa org.Apache.scintilla.SparkContext
importa org.Apache.scintilla.SparkConf
oggetto Wordcount {
def main(args: Array) {
//Create conf object
val conf = new SparkConf()
.setAppName(“WordCount”)
//create spark context object
val sc = new SparkContext(conf)
//Check whether sufficient params are supplied
if (args.length < 2) {
println(“Usage: ScalaWordCount <input><output>”)
System.exit(1)
}
//Read file and create RDD
val rawData = sc.textFile(args(0))
//convert the lines into words using flatMap operation
val words = rawData.flatMap(line => line.split ( “” ))
//conta le singole parole usando map e reduceByKey operation
val wordCount = words.mappa (word=> (word, 1)).reduceByKey (_ + _ )
//Salva il risultato
wordCount.saveAsTextFile(args (1))
//arresta il contesto spark
sc.stop
}
}

Funzioni di SparkContext in Apache Scintilla

10 Funzioni Importanti di SparkContext in Apache Scintilla

10 Funzioni Importanti di SparkContext in Apache Scintilla

io. Per ottenere lo stato corrente dell’applicazione Spark

  • SpkEnv-È un ambiente di runtime con i servizi pubblici di Spark. Interagisce tra loro per stabilire una piattaforma di calcolo distribuito per l’applicazione Spark. Un oggetto SparkEnv che contiene i servizi di runtime necessari per l’esecuzione dell’applicazione Spark con il diverso ambiente per il driver e l’esecutore rappresenta l’ambiente di runtime Spark.
  • SparkConf-Le proprietà Spark gestiscono le impostazioni massime delle applicazioni e sono configurate separatamente per ogni applicazione. Possiamo anche facilmente impostare queste proprietà su uno SparkConf. Alcune proprietà comuni come l’URL principale e il nome dell’applicazione, nonché una coppia chiave-valore arbitraria, configurata tramite il metodo set ().
  • Deployment environment (as master URL) – Spark deployment environment sono di due tipi, vale a dire locale e cluster. La modalità locale è la modalità di distribuzione JVM singola non distribuita. Tutti i componenti di esecuzione-driver, executor, LocalSchedulerBackend e master sono presenti nella stessa singola JVM. Quindi, l’unica modalità in cui i driver sono utili per l’esecuzione è la modalità locale. Per scopi di test, debug o dimostrazione, la modalità locale è adatta perché non richiede alcuna configurazione precedente per avviare l’applicazione spark. Mentre in modalità cluster, Spark viene eseguito in modalità distributiva. Scopri Spark Cluster Manager in dettaglio.

ii. Per impostare la configurazione

  • URL master – Il metodo master restituisce il valore corrente di spark.master che è l’ambiente di distribuzione in uso.
  • Proprietà locali-Creazione di gruppi di lavoro logici – Il motivo del concetto di proprietà locali è quello di formare gruppi logici di lavori mediante proprietà che creano il lavoro separato avviato da thread diversi appartengono a un singolo gruppo logico. Possiamo impostare una proprietà locale che influenzerà i lavori Spark inviati da un thread, come il pool di pianificazione Spark fair.
  • Livello di registrazione predefinito: consente di impostare il livello di accesso root in un’applicazione Spark, ad esempio Spark Shell.

iii. Per accedere a vari servizi

Aiuta anche ad accedere a servizi come TaskScheduler, LiveListenBus, BlockManager, SchedulerBackend, ShuffelManager e il ContextCleaner opzionale.

iv. Per annullare un lavoro

cancleJob richiede semplicemente a DAGScheduler di eliminare un lavoro Spark.
Scopri Spark DAG(Grafico aciclico diretto) in dettaglio.

v. Per annullare uno stage

cancleStage richiede semplicemente a DAGScheduler di rilasciare uno stage Spark.

vi. Per la pulizia della chiusura in Spark

Spark cleanups la chiusura ogni volta che si verifica un’azione, ad es. il corpo di azione prima che venga serializzato e inviato sul filo da eseguire. Il metodo clean in SparkContext fa questo. Questo, a sua volta, chiama ClosureClean.metodo pulito. Non solo pulisce la chiusura, ma anche la chiusura di riferimento è pulita in modo transitorio. Assume serializzabile fino a quando non fa riferimento esplicito a oggetti non serializzabili.

vii. Per registrare Spark listener

Possiamo registrare una SparkListenerInterface personalizzata con l’aiuto del metodo addSparkListener. Possiamo anche registrare ascoltatori personalizzati utilizzando la spark.Impostazione extraListeners.

viii. Allocazione dinamica programmabile

Fornisce anche il seguente metodo come API di sviluppo per l’allocazione dinamica degli esecutori: requestExecutors, killExecutors, requestTotalExecutors, getExecutorIds.

ix. Per accedere a RDD persistenti

getPersistentRDDs fornisce la raccolta di RDD che si sono contrassegnati come persistenti tramite cache.

x. Per deselezionare RDDs

Dal Gestore blocchi del master e dalla mappatura persistentRdds interna, l’unpersist rimuove l’RDD.

Quindi, questo era tutto in Sparkcontext Tutorial. Spero che ti piaccia la nostra spiegazione.

Conclusione

Quindi, SparkContext fornisce le varie funzioni in Spark come ottenere lo stato corrente dell’applicazione Spark, impostare la configurazione, annullare un lavoro, annullare una fase e molto altro ancora. È un punto di ingresso alla funzionalità Spark. Quindi, agisce come una spina dorsale.
Se avete qualche domanda su questo tutorial, Quindi sentitevi liberi di condividere con noi. Saremo lieti di risolverli.
Vedi anche –

  • Modi per creare RDD in Spark
  • Compatibilità Apache Spark con Hadoop