Que es Apache-Spark

Apache-Spark

. Apache Spark es un marco (Framework) de computación en clúster de código abierto para procesamiento en tiempo real .

Qué es Apache Spark

Apache Spark :

Es una poderosa distribución de código abierto y de propósito general, motor de procesamiento de datos que proporciona procesamiento de flujo en tiempo real . Procesamiento interactivo, procesamiento de gráficos, procesamiento en memoria, procesamiento por lotes con una velocidad muy rápida y facilidad de uso. Los desarrolladores de aplicaciones y los científicos de datos incorporan Spark en sus aplicaciones para consultar, analizar y transformar datos rápidamente a escala. Las tareas asociadas con más frecuencia con Spark incluyen trabajos SQL en grandes conjuntos de datos, procesamiento de datos de transmisión desde sensores, IoT o sistemas financieros, y tareas de aprendizaje automático (Machine Learning). Las empresas de tecnología líderes ahora desean un motor potente que pueda hacer todas estas cosas y, afortunadamente, Spark no es demasiado difícil de aprender si ya conoce Python y SQL. Desarrollado originalmente en UC Berkeley , muchos grandes de Internet han adoptado Spark para procesar colectivamente petabytes de datos en grupos de más de 8K nodos. Se ha convertido en la comunidad de código abierto más grande en big data.

Terminología importante

  1. Apache Spark : «Apache Spark es un marco(Framework) de trabajo de computación en clúster de uso general distribuido,de código abierto».
  2. Computación distribuida : en pocas palabras, Apache Spark salva el situacion cuando los conjuntos de datos son demasiado grandes o cuando los nuevos datos llegan demasiado rápido para que los maneje una sola computadora. Ingrese a la computación distribuida. En lugar de intentar procesar programas costosos desde el punto de vista computacional en una sola computadora, estas tareas pueden dividirse entre varias computadoras que se comunican entre sí. Cuando Spark dice que tiene que ver con datos distribuidos, significa que está diseñado para trabajar con conjuntos de datos muy grandes y procesarlos en un sistema informático distribuido.
  3. Propósito general : Spark es extremadamente flexible y tiene muchos dominios de aplicación. Es compatible con Scala, Python, Java, R y SQL. Tiene un módulo SQL dedicado, es capaz de procesar datos transmitidos en tiempo real y tiene una biblioteca de aprendizaje automático (Machine Learning) y un motor de cálculo gráfico listo para usar.
  4. Computación en clúster: un clúster de computadoras es un conjunto de computadoras conectadas estrecha o débilmente que funcionan juntas para que puedan verse como un solo sistema. Tienen cada nodo configurado para realizar la misma tarea, controlada y programada por software.Los datos particionados se refieren a datos que se han optimizado para poder procesarse en varios nodos.
  5. Los RDD : un componente central de Spark, los conjuntos de datos distribuidos resistentes son colecciones distribuidas inmutables de elementos de datos que se pueden almacenar en la memoria en un grupo de máquinas. Se pueden operar en paralelo con una API de bajo nivel que ofrece transformaciones y acciones. Los RDD son tolerantes a fallas ya que rastrean la información del linaje de datos para reconstruir los datos perdidos automáticamente en caso de fallas.
  6. Tolerancia a fallas : Spark es tolerante a fallas. En resumen, la tolerancia a fallas se refiere a la capacidad de un sistema distribuido para continuar funcionando correctamente incluso cuando ocurre una falla. Si un nodo se rompe, el proceso aún puede ejecutarse.
  7. Evaluación perezosa : Spark es «perezoso«, en el buen sentido. Cuando un compilador que no es «perezoso» compila código, evalúa secuencialmente cada expresión. Un compilador perezoso no evalúa expresiones continuamente, sino que espera hasta que se le indique que genere un resultado, realizando toda la evaluación a la vez.
  8. PySpark : también conocido como «Spark Python API«, PySpark se utiliza en Spark con el lenguaje de programación Python, lo que hace que la utilidad de Spark sea más accesible para los profesionales de la ciencia de datos que están más familiarizados con Python que con Scala.
  9. Spark DataFrames : colecciones distribuidas inmutables de datos organizados en columnas con nombre, como una tabla en una base de datos relacional, que permiten a los desarrolladores imponer una estructura a una colección distribuida de datos. Para aquellos familiarizados con Pandas DataFrames, es similar, solo se tarda un poco más en adaptarse y es mejor para conjuntos de datos más grandes.
  10. MLlib : una biblioteca general de aprendizaje automático (Machine Learning) diseñada para ser simple, escalable y fácil de integrar con otras herramientas. Con la escalabilidad, la compatibilidad de idiomas y la velocidad de Spark, los científicos de datos pueden resolver e iterar sus problemas de datos más rápido.
  11. GraphX : un componente / biblioteca de Spark para gráficos y cálculo paralelo de gráficos, que incluye una colección creciente de algoritmos y constructores de gráficos para simplificar el análisis de gráficos.
  12. Spark Streaming : una extensión de la API de Spark que permite a los ingenieros / científicos de datos procesar datos en tiempo real de fuentes como Kafka, Flume y Amazon Kinesis y enviarlos a bases de datos y paneles en vivo. Su abstracción clave es un flujo discreto (DStream) que, debido a que está construido sobre Spark RDD, permite una integración perfecta con MLlib y Spark SQL.

Beneficios específicos

  1. Simplicidad: se puede acceder a las capacidades de Spark a través de API enriquecidas que están bien documentadas y estructuradas de una manera que facilita a los científicos de datos y desarrolladores ponerse en marcha rápidamente.
  2. Velocidad: Spark está diseñado para la velocidad, operando tanto en memoria como en disco. Spark puede funcionar muy bien cuando admite consultas interactivas de datos almacenados en la memoria. En estos casos, se afirma que Spark puede ser 100 veces más rápido que MapReduce.
  3. Soporte: Spark admite muchos lenguajes de programación, incluidos Java, Python, R y Scala, y una serie de soluciones de almacenamiento de vanguardia. La comunidad de desarrolladores es grande, activa y global. Más proveedores comerciales, incluidos Databricks, IBM y proveedores clave de Hadoop, brindan soporte técnico para soluciones basadas en Spark.

Capacidades específicas

  1. Transmisión de datos: desde registros de actividad hasta datos de sensores, los desarrolladores están cada vez más inundados con flujos constantes de nuevos datos, a menudo de múltiples fuentes al mismo tiempo. A menudo tiene sentido procesar y actuar sobre los datos a medida que llegan (por ejemplo, identificar transacciones financieras fraudulentas).
  2. Aprendizaje automático(Machine Learning): a medida que aumentan los volúmenes de datos, los modelos de aprendizaje automático a menudo pueden volverse más útiles y precisos. La capacidad de Spark para almacenar datos en la memoria y ejecutar consultas repetidas rápidamente lo convierte en una buena opción para entrenar algoritmos de aprendizaje automático. La repetición de consultas similares nuevamente a escala reduce el tiempo necesario para evaluar posibles soluciones a fin de encontrar los algoritmos más eficientes.
  3. Análisis interactivo / personalizado: las consultas predefinidas y los cuadros de mando estáticos son menos eficientes y escalables, ya que los analistas de negocios y los científicos de datos desean explorar sus datos haciendo una pregunta, viendo el resultado y profundizando en tiempo real. Spark es capaz de responder y adaptarse rápidamente, potenciando las implementaciones de análisis personalizados en tiempo real.
  4. Integración de datos y ETL: los datos provenientes de diferentes sistemas comerciales rara vez son lo suficientemente limpios como para prepararlos fácilmente para informes / análisis. Los procesos de extracción, transformación y carga (ETL) se utilizan a menudo para extraer, limpiar, estandarizar y cargar datos en un nuevo sistema para su análisis. Spark puede reducir el costo y el tiempo necesarios para este proceso ETL.

En resumen

Motor unificado para análisis de datos a gran escala Apache Spark es un motor para ejecutar ingeniería de datos, ciencia de datos y aprendizaje automático en clústeres o máquinas de un solo nodo.

  1. -. Lote / transmisión de datos : Unifique el procesamiento de sus datos en lotes y transmisión en tiempo real, utilizando su lenguaje preferido: Python, SQL, Scala, Java o R.
  2. -. Análisis SQL : Ejecute consultas ANSI SQL distribuidas y rápidas para crear paneles e informes ad-hoc. Funciona más rápido que la mayoría de los almacenes de datos.
  3. -. Ciencia de datos a escala : Realice análisis de datos exploratorios (EDA) en datos a escala de petabytes sin tener que recurrir a la reducción de resolución
  4. -. Aprendizaje automático : Entrene algoritmos de aprendizaje automático en una computadora portátil y use el mismo código para escalar a clústeres tolerantes a fallas de miles de máquinas.

Esto es todo lo que nos ofrecen en su portada de inicio https://spark.apache.org/ y en este caso es real

 

Recopilando:

Que es Apache-spark sus tecnologias, utilidades, capacidades y beneficios de Spark las fuentes para estos apuntes https://spark.apache.org/

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *