Articles

Aprende SparkContext-Introducción y funciones

Mantente actualizado con las últimas tendencias tecnológicas
¡Únete a DataFlair en Telegram!!

Objective

SparkContext es la puerta de entrada de la funcionalidad de Apache Spark. El paso más importante de cualquier aplicación de controlador de Spark es generar SparkContext. Permite que su aplicación Spark acceda al clúster de Spark con la ayuda del Administrador de recursos (YARN/Mesos). Para crear SparkContext, primero se debe hacer SparkConf. La SparkConf tiene un parámetro de configuración que nuestra aplicación de controlador Spark pasará a SparkContext.
En este tutorial de Apache Spark, entenderemos profundamente qué es SparkContext en Spark. Cómo crear una clase SparkContext en Spark con la ayuda del programa Spark-Scala de recuento de palabras. También aprenderemos varias tareas de SparkContext y cómo detener SparkContext en Apache Spark.

Entonces, comencemos el tutorial de SparkContext.

Aprenda SparkContext-Introducción y funciones

Aprenda Spark-Introducción y funciones

Aprenda a instalar Apache Spark en modo independiente y a instalar Apache Spark en un clúster de varios nodos.

¿Qué es SparkContext en Apache Spark?

SparkContext es el punto de entrada de la funcionalidad de Spark. El paso más importante de cualquier aplicación de controlador de Spark es generar SparkContext. Permite que la aplicación de Spark acceda al clúster de Spark con la ayuda del Administrador de recursos. El administrador de recursos puede ser uno de estos tres Mesos independientes de Spark, YARN y Apache.

¿Cómo crear la Clase SparkContext?

Si desea crear SparkContext, primero debe crearse SparkConf. La SparkConf tiene un parámetro de configuración que nuestra aplicación de controlador Spark pasará a SparkContext. Algunos de estos parámetros definen las propiedades de la aplicación Spark driver. Mientras que algunos son utilizados por Spark para asignar recursos en el clúster, como el número, el tamaño de memoria y los núcleos utilizados por el ejecutor que se ejecuta en los nodos de trabajo.En resumen, guía cómo acceder al clúster de Spark. Después de la creación de un objeto SparkContext, podemos invocar funciones como textFile, SequenceFile, parallelize, etc. Los diferentes contextos en los que se puede ejecutar son local, yarn-client, Mesos URL y Spark URL.
Una vez creado el SparkContext, se puede usar para crear RDDs, variables de difusión y acumuladores, ingresar al servicio Spark y ejecutar trabajos. Todas estas cosas se pueden llevar a cabo hasta que se detenga SparkContext.

Detener SparkContext

Solo puede estar activo un SparkContext por JVM. Debe detener el activo antes de crear uno nuevo como se muestra a continuación:
stop(): Unidad
Mostrará el siguiente mensaje:
INFO SparkContext: SparkContext detenido con éxito

Ejemplo de recuento de palabras de Spark Scala

Veamos cómo crear SparkContext usando SparkConf con la ayuda de Spark-Scala ejemplo de recuento de palabras-

paquete com.dataflair.spark
import org.apache.chispa.SparkContext
import org.apache.chispa.SparkConf
object 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(» «))
//cuente las palabras individuales usando la operación map y reduceByKey
val WordCount = words.mapa (word = > (word, 1)).reduceByKey ( _ + _)
//Guarda el resultado
WordCount.saveAsTextFile (args(1))
//detener el contexto spark
sc.stop
}
}

Funciones de SparkContext en Apache Spark

10 Funciones Importantes de SparkContext en Apache Spark

10 Funciones Importantes de SparkContext en Apache Spark

yo. Para obtener el estado actual de la aplicación Spark

  • SpkEnv, es un entorno de tiempo de ejecución con los servicios públicos de Spark. Interactúa entre sí para establecer una plataforma de computación distribuida para la aplicación Spark. Un objeto SparkEnv que contiene los servicios de tiempo de ejecución necesarios para ejecutar la aplicación Spark con el entorno diferente para el controlador y el ejecutor representa el entorno de tiempo de ejecución de Spark.
  • SparkConf: Las propiedades de Spark manejan la configuración máxima de las aplicaciones y se configuran por separado para cada aplicación. También podemos establecer fácilmente estas propiedades en una SparkConf. Algunas propiedades comunes como la URL maestra y el nombre de la aplicación, así como un par de clave-valor arbitrario, configurado a través del método set ().
  • Entorno de implementación (como URL maestra): el entorno de implementación de Spark es de dos tipos, local y en clúster. El modo local es el modo de implementación de JVM única no distribuida. Todos los componentes de ejecución-controlador, ejecutor, LocalSchedulerBackend y maestro-están presentes en la misma JVM. Por lo tanto, el único modo en el que los controladores son útiles para la ejecución es el modo local. Para fines de prueba, depuración o demostración, el modo local es adecuado porque no requiere una configuración anterior para iniciar la aplicación spark. En modo agrupado, Spark se ejecuta en modo distributivo. Aprenda el Administrador de clústeres de Spark en detalle.

ii. Para establecer la URL maestra de configuración

  • : El método maestro devuelve el valor actual de spark.maestro que es el entorno de implementación en uso.
  • Propiedades locales-Creación de grupos de trabajos lógicos – La razón del concepto de propiedades locales es formar grupos lógicos de trabajos por medio de propiedades que crean el trabajo separado lanzado desde diferentes subprocesos que pertenecen a un único grupo lógico. Podemos establecer una propiedad local que afectará a los trabajos de Spark enviados desde un subproceso, como el grupo de planificadores justos de Spark.
  • Nivel de registro predeterminado: le permite establecer el nivel de inicio de sesión raíz en una aplicación de Spark, por ejemplo, el Shell de Spark.

iii. Para acceder a varios servicios

También ayuda a acceder a servicios como TaskScheduler, LiveListenBus, BlockManager, SchedulerBackend, ShuffelManager y el limpiador de contexto opcional.

iv. Para cancelar un trabajo

cancleJob simplemente solicita a DAGScheduler que elimine un trabajo de Spark.Aprenda sobre Spark DAG (Grafo Acíclico dirigido) en detalle.

v. Para cancelar un escenario

cancleStage simplemente solicita a DAGScheduler que deje caer un escenario Spark.

vi. Para la limpieza del cierre en Spark

Spark limpia el cierre cada vez que se produce una acción, p.ej. el cuerpo de Acción antes de serializado y enviado a través del cable para ejecutarlo. El método limpio en SparkContext hace esto. Esto, a su vez, se llama ClosureClean.método limpio. No solo limpia el cierre, sino que también el cierre referenciado se limpia transitivamente. Asume serializable hasta que no hace referencia explícita a objetos no serializables.

vii. Para registrar Spark listener

Podemos registrar una interfaz Sparklistener personalizada con la ayuda del método addSparkListener. También podemos registrar oyentes personalizados usando spark.Ajuste de extralisteners.

viii. Asignación dinámica programable

También proporciona el siguiente método como API de desarrollador para la asignación dinámica de ejecutores: requestExecutors, killExecutors, requestTotalExecutors, getExecutorIds.

ix. Para acceder a RDD persistentes

getPersistentRDDs proporciona la colección de RDD que se han marcado a sí mismos como persistentes a través de la caché.

x. A RDDs unpersist

Del Administrador de bloques del maestro y de la asignación persistentRdds interna, unpersist elimina el RDD.

Entonces, todo esto estaba en el tutorial de Sparkcontext. Espero que te guste nuestra explicación.

Conclusión

Por lo tanto, SparkContext proporciona las diversas funciones en Spark, como obtener el estado actual de la aplicación Spark, establecer la configuración, cancelar un trabajo, Cancelar una etapa y mucho más. Es un punto de entrada a la funcionalidad de Spark. Por lo tanto, actúa como columna vertebral.Si tiene alguna pregunta sobre este tutorial, no dude en compartirla con nosotros. Estaremos encantados de resolverlos.
Consulte También –

  • Formas de crear RDD en Spark
  • Compatibilidad de Apache Spark con Hadoop