Apache Spark es un marco de código abierto y un sistema informático de clúster de uso general. Spark proporciona API de alto nivel en Java, Scala, Python y R que admiten gráficos de ejecución general. Viene con módulos incorporados que se utilizan para transmisión, SQL, aprendizaje automático y procesamiento de gráficos. Es capaz de analizar una gran cantidad de datos y distribuirlos en el clúster y procesar los datos en paralelo.
En este tutorial, explicaremos cómo instalar la pila informática de clúster de Apache Spark en Ubuntu 20.04.
Requisitos
- Un servidor que ejecuta el servidor Ubuntu 20.04.
- Se configura una contraseña de root en el servidor.
Cómo empezar
Primero, deberá actualizar los paquetes de su sistema a la última versión. Puede actualizarlos todos con el siguiente comando:
apt-get update -y
Una vez que todos los paquetes estén actualizados, puede continuar con el siguiente paso.
Instalar Java
Apache Spark es una aplicación basada en Java. Entonces Java debe estar instalado en su sistema. Puede instalarlo con el siguiente comando:
apt-get install default-jdk -y
Una vez que Java esté instalado, verifique la versión instalada de Java con el siguiente comando:
java --version
Debería ver el siguiente resultado:
openjdk 11.0.8 2020-07-14 OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04) OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)
Instalar Scala
Apache Spark se desarrolla utilizando Scala. Por lo tanto, deberá instalar Scala en su sistema. Puede instalarlo con el siguiente comando:
apt-get install scala -y
Después de instalar Scala. Puede verificar la versión de Scala usando el siguiente comando:
scala -version
Debería ver el siguiente resultado:
Scala code runner version 2.11.12 -- Copyright 2002-2017, LAMP/EPFL
Ahora, conéctese a la interfaz de Scala con el siguiente comando:
scala
Deberías obtener el siguiente resultado:
Welcome to Scala 2.11.12 (OpenJDK 64-Bit Server VM, Java 11.0.8). Type in expressions for evaluation. Or try :help.
Ahora, prueba el Scala con el siguiente comando:
scala> println("Hitesh Jethva")
Deberías obtener el siguiente resultado:
Hitesh Jethva
Instalar Apache Spark
Primero, deberá descargar la última versión de Apache Spark desde su sitio web oficial. Al momento de escribir este tutorial, la última versión de Apache Spark es la 2.4.6. Puede descargarlo en el directorio /opt con el siguiente comando:
cd /opt
wget https://archive.apache.org/dist/spark/spark-2.4.6/spark-2.4.6-bin-hadoop2.7.tgz
Una vez descargado, extraiga el archivo descargado con el siguiente comando:
tar -xvzf spark-2.4.6-bin-hadoop2.7.tgz
A continuación, cambie el nombre del directorio extraído a chispa como se muestra a continuación:
mv spark-2.4.6-bin-hadoop2.7 spark
A continuación, deberá configurar el entorno de Spark para que pueda ejecutar fácilmente los comandos de Spark. Puede configurarlo editando el archivo .bashrc:
nano ~/.bashrc
Agregue las siguientes líneas al final del archivo:
export SPARK_HOME=/opt/spark export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
Guarde y cierre el archivo y luego active el entorno con el siguiente comando:
source ~/.bashrc
Iniciar servidor maestro Spark
En este punto, Apache Spark está instalado y configurado. Ahora, inicie el servidor maestro de Spark con el siguiente comando:
start-master.sh
Debería ver el siguiente resultado:
starting org.apache.spark.deploy.master.Master, logging to /opt/spark/logs/spark-root-org.apache.spark.deploy.master.Master-1-ubuntu2004.out
De manera predeterminada, Spark está escuchando en el puerto 8080. Puede verificarlo con el siguiente comando:
ss -tpln | grep 8080
Debería ver el siguiente resultado:
LISTEN 0 1 *:8080 *:* users:(("java",pid=4930,fd=249))
Ahora, abra su navegador web y acceda a la interfaz web de Spark usando la URL http://your-server-ip:8080. Debería ver la siguiente pantalla:
Iniciar proceso de trabajo de Spark
Como puede ver, el servicio maestro de Spark se ejecuta en spark://your-server-ip:7077. Entonces puede usar esta dirección para iniciar el proceso de trabajo de Spark usando el siguiente comando:
start-slave.sh spark://your-server-ip:7077
Debería ver el siguiente resultado:
starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-ubuntu2004.out
Ahora, vaya al tablero de Spark y actualice la pantalla. Debería ver el proceso de trabajo de Spark en la siguiente pantalla:
Trabajando con Spark Shell
También puede conectar el servidor Spark usando la línea de comandos. Puede conectarlo usando el comando spark-shell como se muestra a continuación:
spark-shell
Una vez conectado, debería ver el siguiente resultado:
WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.apache.spark.unsafe.Platform (file:/opt/spark/jars/spark-unsafe_2.11-2.4.6.jar) to method java.nio.Bits.unaligned() WARNING: Please consider reporting this to the maintainers of org.apache.spark.unsafe.Platform WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release 20/08/29 14:35:07 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). Spark context Web UI available at http://ubuntu2004:4040 Spark context available as 'sc' (master = local[*], app id = local-1598711719335). Spark session available as 'spark'. Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 2.4.6 /_/ Using Scala version 2.11.12 (OpenJDK 64-Bit Server VM, Java 11.0.8) Type in expressions to have them evaluated. Type :help for more information. scala>
Si desea utilizar Python en Spark. Puede usar la utilidad de línea de comandos pyspark.
Primero, instale la versión 2 de Python con el siguiente comando:
apt-get install python -y
Una vez instalado, puedes conectar el Spark con el siguiente comando:
pyspark
Una vez conectado, debería obtener el siguiente resultado:
Python 2.7.18rc1 (default, Apr 7 2020, 12:05:55) [GCC 9.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by org.apache.spark.unsafe.Platform (file:/opt/spark/jars/spark-unsafe_2.11-2.4.6.jar) to method java.nio.Bits.unaligned() WARNING: Please consider reporting this to the maintainers of org.apache.spark.unsafe.Platform WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release 20/08/29 14:36:40 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /__ / .__/\_,_/_/ /_/\_\ version 2.4.6 /_/ Using Python version 2.7.18rc1 (default, Apr 7 2020 12:05:55) SparkSession available as 'spark'. >>>
Si desea detener el servidor Maestro y Esclavo. Puedes hacerlo con el siguiente comando:
stop-slave.sh
stop-master.sh
Conclusión
¡Felicidades! Ha instalado con éxito Apache Spark en el servidor Ubuntu 20.04. Ahora debería poder realizar pruebas básicas antes de comenzar a configurar un clúster de Spark. Siéntase libre de preguntarme si tiene alguna pregunta.