Apache Spark

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda
Apache Spark
spark.apache.org
Spark Logo
Información general
Desarrollador(es) Apache Software Foundation y AMPLab
Lanzamiento inicial 30 de mayo de 2014
Género Data analytics, machine learning algorithms
Programado en Scala, Java, Python, R
Sistema operativo Microsoft Windows, macOS, Linux
Plataforma Java
Licencia Apache License 2.0
Estado actual Activo
Idiomas inglés
En español No

Apache Spark es una framework de computación en clúster open-source. Fue desarrollada originariamente en la Universidad de California, en el AMPLab de Berkeley. El código base del proyecto Spark fue donado más tarde a la Apache Software Foundation que se encarga de su mantenimiento desde entonces. Spark proporciona una interfaz para la programación de clusters completos con Paralelismo de Datos implícito y tolerancia a fallos.

Apache Spark se puede considerar un sistema de computación en clúster de propósito general y orientado a la velocidad. Porpociona APIs en Java, Scala, Python y R. También proporciona un motor optimizado que soporta la ejecución de grafos en general. También soporta un conjunto extenso y rico de herramientas de alto nivel entre las que se incluyen Spark SQL (para el procesamiento de datos estructurados basada en SQL), MLlib para implementar machine learning, GraphX para el procesamirnto de grafos y Spark Streaming.

Historia[editar]

Spark fue desarrollado en sus inicios por Matei Zaharia en el AMPLab de la UC Berkeley en 2009. Fue liberado como código abierto en 2010 bajo licencia licencia BSD.

En 2013, el proyecto fue donado a la Apache Software Foundation y se modificó su licencia a Apache 2.0. En febrero de 2014, Spark se convirtió en un Top-Level Apache Project.[1]

En noviembre de 2014, el la empresa de su fundador, M. Zaharia Databricks obtuvo un nuevo récord mundial en la ordenación a gran escala usando Spark.[2]

Hacia 2015, Spark tenía más de 1000 contribuidores[3]​ convirtiéndose en uno de los proyectos más activos de la Apache Software Foundation[4]​ y en uno de los proyectos de big data open source más activos.

Dada la poularidad de la plataforma hacia el 2014, programas de pago como la General Assembly and free fellowships like The Data Incubator comenzaron a ofrecer cursos de formación personalizados[5]

Versión Fecha de la Distribución Original Última Versión Fecha de la Distribución
Versión antígua, no soportada: 0.5 2012-06-12 0.5.1 2012-10-07
Versión antígua, no soportada: 0.6 2012-10-14 0.6.2 2013-02-07[6]
Versión antígua, no soportada: 0.7 2013-02-27 0.7.3 2013-07-16
Versión antígua, no soportada: 0.8 2013-09-25 0.8.1 2013-12-19
Versión antígua, no soportada: 0.9 2014-02-02 0.9.2 2014-07-23
Versión antígua, no soportada: 1.0 2014-05-30 1.0.2 2014-08-05
Versión antígua, no soportada: 1.1 2014-09-11 1.1.1 2014-11-26
Versión antígua, no soportada: 1.2 2014-12-18 1.2.2 2015-04-17
Versión antígua, no soportada: 1.3 2015-03-13 1.3.1 2015-04-17
Versión antígua, no soportada: 1.4 2015-06-11 1.4.1 2015-07-15
Versión antígua, no soportada: 1.5 2015-09-09 1.5.2 2015-11-09
Antígua versión, con soporte: 1.6 2016-01-04 1.6.3 2016-11-07
Antígua versión, con soporte: 2.0 2016-07-26 2.0.2 2016-11-14
Antígua versión, con soporte: 2.1 2016-12-28 2.1.1 2017-05-02
Versión estable actual: 2.2 2017-07-11 2.2.1 2017-12-01
Leyenda:
Versión antígua
Versión antígua, soportada
Última versión
Última versión prevista
Lanzamiento futuro

Introducción[editar]

Apache Spark tiene la base de su arquitectura en el llamado RDD o Resilient Distributed DataSet que es un multiset de solo lectura de ítems de datos distribuidos a lo largo de un clúster de máquinas que se mantiene en un entorno tolerante a fallos.[7]

En Spark 1.x, RDD era la API principal pero con el desarrollo de Spark 2.0, se recomienda la utilización de la API DataSet.[8]​ aunque la API RDD no se considera descatalogada.[9][10]​ la tecnología RDD todavía está presente en la base de la API DataSet.[11]

Spark y sus RDDs fueron desarrollados en 2012 en respuesta a las limitaciones del paradigma de computación en clúster MapReduce que fuerza a la utilización de una estructura lineal dataflow en particular en los programas distribuidos: Los programas basados en MapReduce leen los datos de entrada desde disco, que mapea una función a lo largo de los datos, reduce los resultados del mapa y almacena los resultados de la reducción en disco.

Los RDDs de Spark funcionan como un working set para los programas distribuidos que ofrecen una forma (deliberadamente) restringida de la memoria compartida distribuida.[12]

Spark facilita la implementación de tanto algoritmos iterativos que visitan su datase muchas veces en un mismo bucle tanto como el análisis de datos interactivo/exploratorio (i.e.

a loop, and interactive/exploratory data analysis, i.e., the repeated database-style querying of data.

La latencia de estas aplicaciones se puede reducir en varios órdenes de magnitud en comparación con la implementación basada en MapReduce (comúnmente utilizada i.e. en los stacks basados en Apache Hadoop.Rhc10[13]

Más allá de los algoritmos de tipor iterativos, están los algoritmos de entrenamiento para sistemas de machine learning , que constituyeron el impulso inicial del desarrollo de Apache Spark.[14]

Apache Spark requiere de un cluster manager y un sistema de almacenamiento distribuido.

Para la gestión del clúster, Spark soporta las opciones siguientes:

Para el almacenamiento distribuido, Spark presenta interfaces hacia una gran variedad de plataformas:

Spark también soporta un modo local pesudo-distribuido, normalmente utilizado solamente para pruebas o en entornos de desarrollo donde el almacenamiento distribuido no es obligatorio y se puede usar el sistema de archivos local; en un escenarion como este, Spark se ejecuta en una única máquina con un executor por cada core de CPU.

Referencias[editar]

  1. «The Apache Software Foundation Announces Apache&#8482 Spark&#8482 as a Top-Level Project». apache.org. Apache Software Foundation. 27 de febrero de 2014. Consultado el 4 de marzo de 2014. 
  2. Spark officially sets a new record in large-scale sorting
  3. Open HUB Spark development activity
  4. «The Apache Software Foundation Announces Apache&#8482 Spark&#8482 as a Top-Level Project». apache.org. Apache Software Foundation. 27 de febrero de 2014. Consultado el 4 de marzo de 2014. 
  5. «NY gets new bootcamp for data scientists: It’s free, but harder to get into than Harvard». Venture Beat. Consultado el 21 de febrero de 2016. 
  6. «Spark News». apache.org. Consultado el 30 de marzo de 2017. 
  7. Zaharia, Matei; Chowdhury, Mosharaf; Franklin, Michael J.; Shenker, Scott; Stoica, Ion. Spark: Cluster Computing with Working Sets. USENIX Workshop on Hot Topics in Cloud Computing (HotCloud). 
  8. «Spark 2.2.0 Quick Start». apache.org. 11 de julio de 2017. Consultado el 19 de octubre de 2017. «we highly recommend you to switch to use Dataset, which has better performance than RDD». 
  9. «Spark 2.2.0 deprecation list». apache.org. 11 de julio de 2017. Consultado el 10 de octubre de 2017. 
  10. Damji, Jules (14 de julio de 2016). «A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets: When to use them and why». databricks.com. Consultado el 19 de octubre de 2017. 
  11. Chambers, Bill (10 de agosto de 2017). «11». Spark: The Definitive Guide ("Rough Cut" pre-print edición). O'Reilly Media. «virtually all Spark code you run, where DataFrames or Datasets, compiles down to an RDD». 
  12. Zaharia, Matei; Chowdhury, Mosharaf; Das, Tathagata; Dave, Ankur; Ma,, Justin; McCauley, Murphy; J., Michael; Shenker, Scott et al.. Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing. USENIX Symp. Networked Systems Design and Implementation. 
  13. Xin, Reynold; Rosen, Josh; Zaharia, Matei; Franklin, Michael; Shenker, Scott; Stoica, Ion (June 2013). Shark: SQL and Rich Analytics at Scale. 
  14. Harris, Derrick (28 de junio de 2014). «4 reasons why Spark could jolt Hadoop into hyperdrive». Gigaom. 
  15. «Cluster Mode Overview - Spark 1.2.0 Documentation - Cluster Manager Types». apache.org. Apache Foundation. 18 de diciembre de 2014. Consultado el 18 de enero de 2015. 
  16. Figure showing Spark in relation to other open-source Software projects including Hadoop
  17. MapR ecosystem support matrix
  18. Doan, DuyHai (10 de septiembre de 2014), «Re: cassandra + spark / pyspark», lista de correo Cassandra User, http://mail-archives.apache.org/mod_mbox/cassandra-user/201409.mbox/%3CCABNXB2DE5Apmvn1nNg79+VdPCSZiCsGdt=ZB4s4OF_5JzS60iA@mail.gmail.com%3E, consultado el 21 de noviembre de 2014.