Apache Spark

Para otros usos de este término, véase Apache (desambiguación).

En este artículo se detectaron varios problemas. Por favor, edítalo y/o discute los problemas en la discusión para mejorarlo:

* Necesita ser wikificado conforme a las convenciones de estilo de Wikipedia.
* Las referencias no son claras o tienen un formato incorrecto.

Este aviso fue puesto el 2 de enero de 2018.

|

Apache Spark

Información general
Tipo de programa|  Data analytics, machine learning algorithms
Desarrollador|  Matei Zaharia
Lanzamiento inicial|  30 de mayo de 2014
Licencia|  Apache License 2.0
Estado actual|  Activo
Idiomas|  inglés
Información técnica
Programado en|  Scala, Java, Python, R
Plataformas admitidas|  Java
Versiones
Última versión estable|  3.5.523 de febrero de 2025
Archivos legibles

varios

* JavaScript Object Notation
* valores separados por comas
* documento de texto
* Apache Parquet
* Optimized Row Columnar
* Apache Avro

Archivos editables

* valores separados por comas
* JavaScript Object Notation
* Apache Parquet
* documento de texto
* Optimized Row Columnar
* Apache Avro

Enlaces

Sitio web oficial

Repositorio de código

Seguimiento de errores

[editar datos en Wikidata]

Apache Spark es un framework de computación (entorno de trabajo) 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. Proporciona APIs en Java, Scala, Python y R. También proporciona un motor optimizado que soporta la ejecución de gráficos 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 procesamiento de graficos 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 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, 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[1]​ y en uno de los proyectos de big data open source más activos.

Dada la popularidad 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[4]​

Versión  | Fecha de la distribución original  | Última versión  | Fecha de la distribución

|
|
|

Versión antigua, sin servicio técnico: 0.5  | 12-06-2012  | 0.5.1  | 07-10-2012
Versión antigua, sin servicio técnico: 0.6  | 14-10-2012  | 0.6.2  | 07-02-2013[5]​
Versión antigua, sin servicio técnico: 0.7  | 27-02-2013  | 0.7.3  | 16-07-2013
Versión antigua, sin servicio técnico: 1.6  | 04-01-2016  | 1.6.3  | 07-11-2016
Versión antigua, sin servicio técnico: 2.0  | 26-07-2016  | 2.0.2  | 14-11-2016
Versión antigua, sin servicio técnico: 2.1  | 28-12-2016  | 2.1.3  | 26-06-2018
Versión antigua, sin servicio técnico: 2.2  | 11-07-2017  | 2.2.3  | 11-01-2019
Versión antigua, sin servicio técnico: 2.3  | 28-02-2018  | 2.3.4  | 09-09-2019
Versión antigua, sin servicio técnico: 2.4  | 02-11-2018  | 2.4.8  | 17-05-2021
Versión antigua, sin servicio técnico: 3.0  | 18-06-2020  | 3.0.3  | 01-06-2021
Versión antigua, sin servicio técnico: 3.1  | 02-03-2021  | 3.1.3  | 18-02-2022
Versión antigua, con servicio técnico: 3.2  | 13-10-2021  | 3.2.4  | 13-04-2023
Versión antigua, con servicio técnico: 3.3  | 16-06-2022  | 3.3.3  | 21-08-2023
Versión estable actual: 3.4 | 13-04-2023  | 3.4.3  | 18-04-2024
Versión estable actual: 3.5 | 09-09-2023  | 3.5.2  | 10-08-2024

Leyenda:

Versión antigua

Versión antigua, con soporte técnico

Última versión

Última versión previa

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 de fallos.[6]​

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.[7]​ aunque la API RDD no se considera descatalogada.[8]​[9]​ la tecnología RDD todavía está presente en la base de la API DataSet.[10]​

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.[11]​

Spark facilita la implementación de tanto algoritmos iterativos que visitan su dataset muchas veces en un mismo bucle tanto como el análisis de datos interactivo/exploratorio (por ejemplo: a loop, and interactive/exploratory data analysis, por ejemplo: 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 por ejemplo en los stacks basados en Apache Hadoop.[6]​[12]​

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

Apache Spark requiere de un manejador de clúster y un sistema de almacenamiento distribuido.

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

* Spark Standalone (Cluster Spark Nativo)
* Hadoop YARN
* Apache Mesos.[14]​

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

* Hadoop Distributed File System (HDFS)[15]​
* MapR File System (MapR-FS)[16]​
* Cassandra[17]​
* OpenStack Swift
* Amazon S3
* Azure Databricks
* Kudu
* Incluso soporta una solución personalizada.
* Databricks

Spark también soporta un modo local pseudo-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. ↑ a b «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. ↑ «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.
5. ↑ «Spark News». apache.org. Consultado el 30 de marzo de 2017.
6. ↑ a b 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).
7. ↑ «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».
8. ↑ «Spark 2.2.0 deprecation list». apache.org. 11 de julio de 2017. Consultado el 10 de octubre de 2017.
9. ↑ 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.
10. ↑ 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».
11. ↑ 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. Se sugiere usar `|número-autores=` (ayuda)
12. ↑ Xin, Reynold; Rosen, Josh; Zaharia, Matei; Franklin, Michael; Shenker, Scott; Stoica, Ion (June 2013). Shark: SQL and Rich Analytics at Scale.
13. ↑ Harris, Derrick (28 de junio de 2014). «4 reasons why Spark could jolt Hadoop into hyperdrive». Gigaom. Archivado desde el original el 24 de octubre de 2017. Consultado el 2 de enero de 2018.
14. ↑ «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.
15. ↑ Figure showing Spark in relation to other open-source Software projects including Hadoop
16. ↑ MapR ecosystem support matrix
17. ↑ 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/, consultado el 21 de noviembre de 2014.

Control de autoridades|

* Proyectos Wikimedia
* Datos: Q7573619
* Multimedia: Apache Spark / Q7573619

* * *

* Informática
* AUR: apache-spark
* Gentoo: sys-cluster/spark-bin
* Open Hub: apache-spark

|

* Datos: Q7573619
* Multimedia: Apache Spark / Q7573619