sábado, 14 de noviembre de 2015

Apache Spark - Despliegue

Spark aplicación, utilizando chispa presentar, es un comando de shell utilizado para implementar la aplicación de chispa en un clúster. Utiliza todos los gerentes de racimo respectivos a través de una interfaz uniforme. Por lo tanto, usted no tiene que configurar la aplicación para cada uno.

Ejemplo

Tomemos el mismo ejemplo de recuento de palabras, hemos utilizado antes, el uso de comandos de shell. En este sentido, consideramos que el mismo ejemplo como una aplicación de chispa.

Entrada de la Muestra

El siguiente texto es la entrada de datos y el archivo llamado es in.txt.
people are not as beautiful as they look, 
as they walk or as they talk.
they are only as beautiful as they love,
as they care as they share.
Mira el siguiente programa -

SparkWordCount.scala

import org.apache.spark.SparkContext 
import org.apache.spark.SparkContext._
import org.apache.spark._

object SparkWordCount {
def main(args: Array[String]) {

val sc
= new SparkContext( "local", "Word Count", "/usr/local/spark", Nil, Map(), Map())

/* local = master URL; Word Count = application name; */
/* /usr/local/spark = Spark Home; Nil = jars; Map = environment */
/* Map = variables to work nodes */
/*creating an inputRDD to read text file (in.txt) through Spark context*/
val input
= sc.textFile("in.txt")
/* Transform the inputRDD into countRDD */

valcount
= input.flatMap(line line.split(" "))
.map(word (word, 1))
.reduceByKey(_ + _)

/* saveAsTextFile method is an action that effects on the RDD */
count
.saveAsTextFile("outfile")
System.out.println("OK");
}
}
Guarde el programa anterior en un archivo denominadoSparkWordCount.scala y colocarlo en un directorio llamado definida por el usuario chispa aplicación.
Nota - Si bien la transformación de la inputRDD en countRDD, estamos utilizando flatMap () para tokenizar las líneas (de archivo de texto) en palabras método map () para contar la frecuencia de la palabra y el método reduceByKey () para contar cada palabra repetición.
Utilice los siguientes pasos para presentar esta solicitud. Ejecutar todos los pasos en la chispa de la aplicación del directorio a través del terminal.

Paso 1: Descargar Spark Ja

Se requiere tarro núcleo Spark para la compilación, por lo tanto, descargar chispa core_2.10-1.3.0.jar desde el siguiente enlace tarro núcleo Spark y mover el archivo jar del directorio de descarga de chispas aplicacióndirectorio.

Paso 2: programa Compile

Compile el programa anterior con el comando a continuación. Este comando debe ejecutarse desde el directorio chispa aplicación. Aquí,/usr/local/spark/lib/spark-assembly-1.4.0-hadoop2.6.0.jar es un tarro de apoyo Hadoop tomado de la biblioteca Spark.
$ scalac -classpath "spark-core_2.10-1.3.0.jar:/usr/local/spark/lib/spark-assembly-1.4.0-hadoop2.6.0.jar" SparkPi.scala

Paso 3: Crear un JAR

Crear un archivo jar de la aplicación de la chispa con el siguiente comando.Aquí, recuento de palabras es el nombre del archivo para el archivo jar.
jar -cvf wordcount.jar SparkWordCount*.class spark-core_2.10-1.3.0.jar/usr/local/spark/lib/spark-assembly-1.4.0-hadoop2.6.0.jar

Paso 4: Presentar solicitud chispa

Presentar la solicitud de chispa con el siguiente comando -
spark-submit --class SparkWordCount --master local wordcount.jar
Si se ejecuta con éxito, entonces usted va a encontrar la salida dada a continuación. El OK alquiler en el siguiente resultado es para la identificación del usuario y que es la última línea del programa. Si lees cuidadosamente la siguiente salida, encontrará diferentes cosas, como -
  • servicio iniciado correctamente 'sparkDriver' en el puerto 42954
  • MemoryStore comenzó con capacidad de 267,3 MB
  • Iniciado SparkUI en http://192.168.1.217:4040
  • Añadido archivo JAR: /home/hadoop/piapplication/count.jar
  • ResultStage 1 (saveAsTextFile en SparkPi.scala: 11) terminaron en 0,566 s
  • Detenido interfaz web Spark en http://192.168.1.217:4040
  • MemoryStore aclaró
15/07/08 13:56:04 INFO Slf4jLogger: Slf4jLogger started 
15/07/08 13:56:04 INFO Utils: Successfully started service 'sparkDriver' on port 42954.
15/07/08 13:56:04 INFO Remoting: Remoting started; listening on addresses :[akka.tcp://sparkDriver@192.168.1.217:42954]
15/07/08 13:56:04 INFO MemoryStore: MemoryStore started with capacity 267.3 MB
15/07/08 13:56:05 INFO HttpServer: Starting HTTP Server
15/07/08 13:56:05 INFO Utils: Successfully started service 'HTTP file server' on port 56707.
15/07/08 13:56:06 INFO SparkUI: Started SparkUI at http://192.168.1.217:4040
15/07/08 13:56:07 INFO SparkContext: Added JAR file:/home/hadoop/piapplication/count.jar at http://192.168.1.217:56707/jars/count.jar with timestamp 1436343967029
15/07/08 13:56:11 INFO Executor: Adding file:/tmp/spark-45a07b83-42ed-42b3b2c2-823d8d99c5af/userFiles-df4f4c20-a368-4cdd-a2a7-39ed45eb30cf/count.jar to class loader
15/07/08 13:56:11 INFO HadoopRDD: Input split: file:/home/hadoop/piapplication/in.txt:0+54
15/07/08 13:56:12 INFO Executor: Finished task 0.0 in stage 0.0 (TID 0). 2001 bytes result sent to driver
(MapPartitionsRDD[5] at saveAsTextFile at SparkPi.scala:11), which is now runnable
15/07/08 13:56:12 INFO DAGScheduler: Submitting 1 missing tasks from ResultStage 1 (MapPartitionsRDD[5] at saveAsTextFile at SparkPi.scala:11)
15/07/08 13:56:13 INFO DAGScheduler: ResultStage 1 (saveAsTextFile at SparkPi.scala:11) finished in 0.566 s
15/07/08 13:56:13 INFO DAGScheduler: Job 0 finished: saveAsTextFile at SparkPi.scala:11, took 2.892996 s
OK
15/07/08 13:56:13 INFO SparkContext: Invoking stop() from shutdown hook
15/07/08 13:56:13 INFO SparkUI: Stopped Spark web UI at http://192.168.1.217:4040
15/07/08 13:56:13 INFO DAGScheduler: Stopping DAGScheduler
15/07/08 13:56:14 INFO MapOutputTrackerMasterEndpoint: MapOutputTrackerMasterEndpoint stopped!
15/07/08 13:56:14 INFO Utils: path = /tmp/spark-45a07b83-42ed-42b3-b2c2823d8d99c5af/blockmgr-ccdda9e3-24f6-491b-b509-3d15a9e05818, already present as root for deletion.
15/07/08 13:56:14 INFO MemoryStore: MemoryStore cleared
15/07/08 13:56:14 INFO BlockManager: BlockManager stopped
15/07/08 13:56:14 INFO BlockManagerMaster: BlockManagerMaster stopped
15/07/08 13:56:14 INFO SparkContext: Successfully stopped SparkContext
15/07/08 13:56:14 INFO Utils: Shutdown hook called
15/07/08 13:56:14 INFO Utils: Deleting directory /tmp/spark-45a07b83-42ed-42b3b2c2-823d8d99c5af
15/07/08 13:56:14 INFO OutputCommitCoordinator$OutputCommitCoordinatorEndpoint: OutputCommitCoordinator stopped!

Paso 5: Comprobación de salida

Después de la ejecución exitosa del programa, se encuentra el directorio llamado archivosalida en el directorio chispa aplicación.
Los siguientes comandos se utilizan para la apertura y la comprobación de la lista de archivos en el directorio de archivo de salida.
$ cd outfile 
$ ls
Part-00000 part-00001 _SUCCESS
Los comandos para el control de la producción en parte-00000 archivos son -
$ cat part-00000 
(people,1)
(are,2)
(not,1)
(as,8)
(beautiful,2)
(they, 7)
(look,1)
Los comandos para el control de la producción en archivo de pieza-00001 son -
$ cat part-00001 
(walk, 1)
(or, 1)
(talk, 1)
(only, 1)
(love, 1)
(care, 1)
(share, 1)
Ir a través de la siguiente sección para saber más sobre el comando 'chispas submit'.

Spark-presentar Sintaxis

spark-submit [options] <app jar | python file> [app arguments]

Opciones


No hay comentarios.:

Publicar un comentario