ūü¶ą [APACHE SPARK] ūüĒé ¬ŅQU√Č es APACHE SPARK? ūüĎĆ ¬ŅC√ďMO INSTALAR APACHE SPARK? ūüĎć

Enviado por admin el Dom, 28/03/2021 - 12:00

ūü¶ą [APACHE SPARK] ūüĒé ¬ŅQU√Č es APACHE SPARK? ūüĎĆ ¬ŅC√ďMO INSTALAR APACHE SPARK? ūüĎć

Hola a todos y bienvenidos de nuevo a este blog! hoy trataré de explicaros que es Apache Spark y como instalarlo en una máquina Ubuntu 18.04

¬ŅQu√© es Apache Spark?

Es un sistema de procesamiento de datos distribuido. Es de c√≥digo abierto y se utiliza para cargas de trabajos Big Data. Utiliza el almacenamiento cach√© en memoria y la ejecuci√≥n de consultas optimizadas que permite realizar consultas r√°pidas con datos de cualquier tama√Īo. En resumen, es un motor r√°pido y general para el procesamiento de datos a gran escala.

Es m√°s r√°pido que los enfoques anteriores para trabajar con Big Data como el cl√°sico Map Reduce. El secreto para ser m√°s r√°pido es que Spark se ejecuta en memoria (RAM) y eso hace que el procesamiento sea mucho m√°s r√°pido que en las unidades de disco. Comentar que Apache Spark no es m√°s r√°pido que alg√ļn software posterior como Apache Flink, del cual te dejo aqu√≠ arriba a la derecha un v√≠deo. Tambi√©n te permite m√ļltiples funcionalidades, como ejecutar SQL distribuido, crear canalizaciones de datos, ingestar datos en una base de datos, ejecutar algoritmos de aprendizaje autom√°tico, trabajar con gr√°ficos o flujos de datos y mucho m√°s.

Historia de Apache Spark

Comenz√≥ como un proyecto de investigaci√≥n en 2009 y se public√≥ como c√≥digo abierto a principios de 2010. Muchas de las ideas detr√°s del sistema se presentaron en varios art√≠culos de investigaci√≥n a lo largo de los a√Īos. Despu√©s de su lanzamiento, Apache Spark obtuvo una gran comunidad de desarrolladores y se traslad√≥ a la Apache Software Foundation en 2013. Hoy en d√≠a, el proyecto es desarrollado en colaboraci√≥n por una comunidad de cientos de desarrolladores.

Componentes de Apache Spark

Ahora que sabemos qué es y como nació, comprendamos sus componentes. Apache Spark se compone de varias partes; Spark Core Engine, Spark SQL, Spark Streaming, MLlib y GraphX. El Spark Core Engine se puede utilizar junto con cualquiera de los otros cinco componentes mencionados anteriormente. No es necesario utilizar todos los componentes de Spark juntos. Dependiendo del caso de uso y la aplicación, cualquiera o más de estos se pueden usar junto con Spark Core.

Veamos cada uno de estos componentes en detalle.

Apache Spark
  • Apache Spark Core: es el motor de ejecuci√≥n para la plataforma Spark sobre el que se basan todas las dem√°s funciones. Proporciona computaci√≥n en memoria y conjuntos de datos de referencia en sistemas de almacenamiento externos.
  • Spark SQL: es el m√≥dulo de Apache Spark para trabajar con datos estructurados. Las interfaces que ofrece Spark SQL proporcionan a Spark m√°s informaci√≥n sobre la estructura tanto de los datos como del c√°lculo que se est√° realizando.
  • Spark Streaming: este componente permite que Spark procese datos de transmisi√≥n en tiempo real. Los datos se pueden ingestar de muchas fuentes como Apache Kafka, Flume y HDFS (sistema de archivos distribuido Hadoop). Luego, los datos pueden procesarse utilizando algoritmos complejos y enviarse a sistemas de archivos, bases de datos y paneles en vivo.
  • MLlib (biblioteca de aprendizaje autom√°tico): Apache Spark est√° equipado con una rica biblioteca conocida como MLlib. Esta biblioteca contiene una amplia gama de algoritmos de aprendizaje autom√°tico: clasificaci√≥n, regresi√≥n, agrupaci√≥n en cl√ļsteres y filtrado colaborativo. Tambi√©n incluye otras herramientas para construir, evaluar y ajustar ML Pipelines. Todas estas funcionalidades ayudan a Spark a escalar horizontalmente en un cl√ļster.
  • GraphX ‚Äč‚Äč- Spark tambi√©n viene con una biblioteca para manipular bases de datos de grafos y realizar c√°lculos llamada GraphX. GraphX ‚Äč‚Äčunifica el proceso ETL (Extracci√≥n, transformaci√≥n y carga), el an√°lisis exploratorio y el c√°lculo gr√°fico iterativo dentro de un solo sistema.

Características de Apache Spark

  • Procesamiento r√°pido: la caracter√≠stica m√°s importante de Apache Spark que ha hecho que el mundo del Big Data elija esta tecnolog√≠a sobre otras es su velocidad. Los macrodatos se caracterizan por el volumen, la variedad, la velocidad y la veracidad, que deben procesarse a mayor velocidad. Spark contiene Resilient Distributed Dataset (RDD) que ahorra tiempo en las operaciones de lectura y escritura, lo que le permite ejecutarse casi de diez a cien veces m√°s r√°pido que Hadoop.
  • Flexibilidad: Apache Spark admite varios lenguajes y permite a los desarrolladores escribir aplicaciones en Java, Scala, R o Python.
  • Computaci√≥n en memoria: Spark almacena los datos en la RAM de los servidores, lo que permite un acceso r√°pido y, a su vez, acelera la velocidad de los an√°lisis.
  • Procesamiento en tiempo real: Spark puede procesar datos de transmisi√≥n en tiempo real. A diferencia de Map Reduce, que procesa solo datos almacenados, Spark puede procesar datos en tiempo real y, por lo tanto, puede producir resultados instant√°neos.

Apache Spark VS Apache Flink

Apache Spark y Apache Flink son herramientas de Big Data, ambas proporcionan conectividad nativa con bases de datos Hadoop y NoSQL y pueden procesar datos HDFS. Ambos dan una buena soluci√≥n a varios problemas de Big Data. Pero Apache Flink es mucho m√°s r√°pido que Apache Spark, debido a su arquitectura subyacente. Apache Spark es el componente m√°s activo del repositorio de Apache. Spark tiene un fuerte apoyo de la comunidad y tiene un buen n√ļmero de colaboradores. Spark tiene varios componentes centrales para realizar diferentes requisitos de aplicaciones, mientras que Flink solo tiene capacidad de procesamiento y transmisi√≥n de datos. ¬†Pero en lo que respecta a la capacidad de transmisi√≥n, Flink es mucho mejor que Spark (ya que Spark maneja la transmisi√≥n en forma de micro lotes) y tiene soporte nativo para transmisi√≥n. Spark se considera 3G de Big Data, mientras que Flink es 4G de Big Data.

Conclusión

Apache Spark ha experimentado un inmenso crecimiento en los √ļltimos a√Īos, convirti√©ndose en el motor de procesamiento de datos y de inteligencia artificial m√°s efectivo en las empresas hoy en d√≠a debido a su velocidad, facilidad de uso y an√°lisis. Sin embargo, el coste de Spark es alto ya que requiere mucha RAM para ejecutarse en memoria.

Spark unifica los datos y la IA al simplificar la preparación de datos a gran escala en varias fuentes. Además, proporciona un conjunto consistente de API para cargas de trabajo de ingeniería y ciencia de datos, junto con una integración perfecta de bibliotecas populares como TensorFlow, PyTorch, R y SciKit-Learn.

Ahora procederemos a instalar Apache Spark en una m√°quina Ubuntu 18.04

Cómo instalar Apache Spark en Ubuntu 18.04

Lo primero que haremos ser√° conectarnos a la m√°quina mediante ssh y hacer login como usuario root

   > sudo bash

Siempre es una buena práctica asegurarnos de que todos los paquetes de nuestro sistema estén actualizados. Para ejecutaremos el siguiente comando. Os recuerdo que os dejo aquí abajo, en la caja de descripción, todos estos comando de instalación, para que podáis hacer copy / paste

   > apt update -y
   

Instalaremos Java, ya que es necesario para poder ejecutar Apache Spark

   > apt install default-jdk -y

El siguiente paso es descargar Apache Spark a nuestra m√°quina. Las √ļltimas versiones de Apache Spark se pueden encontrar en la p√°gina de descarga de Apache Spark. En este caso yo voy a descargar la 3.0.2
   
   > wget https://downloads.apache.org/spark/spark-3.0.2/spark-3.0.2-bin-hadoop2.7.tgz
   
   Una vez que la descarga a terminado, extraemos el archivo tar de Apache Spark con el siguiente comando.

   > tar -xvzf spark-3.0.2-bin-hadoop2.7.tgz

   Movemos el directorio extraído a /opt/spark
   
   > mkdir /opt/spark

   > mv spark-3.0.2-bin-hadoop2.7/* /opt/spark

   Antes de iniciar Apache Spark debemos configurar algunas variables de entorno en el archivo .profile ejecutando los siguientes comandos:
    
   > echo "export SPARK_HOME=/opt/spark" >> ~/.profile
   
   > echo "export PATH=$PATH:/opt/spark/bin:/opt/spark/sbin" >> ~/.profile
   
   > sudo apt-get install python3
   
   > echo "export PYSPARK_PYTHON=/usr/bin/python3" >> ~/.profile
   
   > cat ~/.profile
   

Para asegurarse de que estas nuevas variables de entorno sean accesibles dentro del terminal y estén disponibles para Apache Spark, también es necesario ejecutar el siguiente comando.

   > source ~/.profile
   
¬†¬† ¬†Con el entorno configurado, el siguiente paso es iniciar el servidor maestro Spark. El comando anterior agreg√≥ el directorio necesario a la variable PATH del sistema, por lo que deber√≠a ser posible ejecutar este comando desde cualquier directorio: Con el entorno configurado, el siguiente paso es iniciar el servidor maestro Spark. El comando anterior agreg√≥ el directorio necesario a la variable PATH del sistema, por lo que deber√≠a ser posible ejecutar este comando desde cualquier directorio. A√ļn as√≠ yo lo ejecuto desde el lugar donde est√°.

   > cd /opt/spark/   
   
   > ./sbin/start-master.sh
   
¬†La interfaz web es √ļtil, pero tambi√©n ser√° necesaria para garantizar que el entorno de l√≠nea de comandos de Spark funcione como se espera. Ejecutando el siguiente comando abriremos Spark Shell.
   
   > ./bin/spark-shell
   
  Spark Shell no solo está disponible en Scala sino también en Python. Salimos pulsando control + D y probamos pyspark ejecutando el siguiente comando.

   > ./bin/pyspark

Déjame en los comentarios que te ha parecido el vídeo, y si te ha gustado dale a Like y Subscríbete. ¡Muchas gracias por llegar hasta el final!