Notas Mentales de Un SysAdmin

blog sobre tecnologías para sysadmin y devops

debian 10

Instalar Spark 2.3.2 + Scala 2.11 sobre Debian 10

En la nota mental de hoy voy a indicar cómo desplegar dos aplicaciones, las cuales nos van a facilitar mucho trabajar con BigData y lago de datos como Hadoop, con versiones en desuso (deprecated) pero que funcionan con JDK8.

Para está instalación nos hace falta tener instalado previamente JDK8. Puedes consultar como hacerlo para Debian 10 aquí.

Introducción

¿Qué es Spark?

Apache Spark es un framework de programación para procesamiento de datos distribuidos diseñado para ser rápido y de propósito general. Cuenta con flexibilidad e interconexión con otros módulos de Apache como Hadoop, Hive o Kafka.

En nuestro caso, lo vamos a utilizar para poder hacer uso de Scala.

¿Qué es Scala?

Es un lenguaje de programación orientado a objetos, bastante popular e integrable con herramientas como IntelliJ, Eclipse, . Una de sus mayores ventajas es la escalabilidad. Comúnmente, se dice que scala suple las carencias de Java, con lo que su uso y adopción está en auge.

El objetivo de esta nota mental no es entrar en detalle de scala, así que si tenéis curiosidad, os dejo un par de entradas interesantes:

Despliegue

Aunque se trata de una versión obsoleta, me parece interesante exponer el proceso que he seguido y me ha funcionado. Y es que a la hora de la verdad, cuando te tropiezas con el mundo real y las infraestructuras de muchas empresas «normales», prima la economía de la empresa. El resultado es que muchos de los sistemas no soportan últimas versiones.

Previo a todo esto, buenas prácticas, update y upgrade:

sudo apt-get update
sudo apt-get upgrade

Este es el repositorio del cual voy a obtener los datos para la instalación:

https://github.com/apache/spark/archive/v2.3.2.zip

Lo primero es descargar spark, descomprimirlo y eliminar los ficheros descargados, dentro de la máquina donde vayamos a realizar la instalación.

sudo wget https://github.com/apache/spark/archive/v2.3.2.zip
sudo unzip v2.3.2.zip
sudo rm -rf v2.3.2.zip

En mi caso, voy a crearle una carpeta específica para la instalación, y voy a mover los archivos descomprimidos dentro de ella.

sudo mkdir /opt/spark  
sudo mv spark-2.3.2/* /opt/spark 

Entramos en la carpeta que acabamos de crear y lanzamos los comandos de configuración para instalar scala. Para ello utilizaremos Maven (mvn) y Hadoop.

cd /opt/spark/
sudo ./dev/change-scala-version.sh 2.11
sudo ./build/mvn -Pyarn -Phadoop-2.6 -Dscala-2.11 -DskipTests clean package

Para verificar la instalación, podemos lanzar:

./bin/run-example SparkPi 10

El siguiente paso quitar la extensión .template del script de configuración.

sudo mv conf/spark-env.sh.template conf/spar-env.sh
sudo nano conf/spark-env.sh

Tenemos que buscar una linea similar a SPARK_LOCAL_IP , que suele ir comentada con #. Le asignaremos el siguiente valor:

SPARK_LOCAL_IP=127.0.0.1

Por último, para utilizar scala, lanzaremos el siguiente comando:

./bin/spark-shell — master local[2]

Problema resuelto!

Instalar JDK 8 en Debian 10

Esta nota mental viene con historia.

Mi segunda semana en mi nuevo trabajo. Me piden que levante una máquina virtual en Google Cloud Platform. Los requisitos no eran descabellados, última versión de Debian, JDK8 y poco más. La instalación clásica no funciona. Hago una búsqueda en caché y tampoco encuentro nada. Que raro.

Aviso a mi compañera, super fan de linux para que me echara un cable en mi atasco. Estuvimos toda una mañana consultando diferentes documentaciones hasta que al fin dimos con el verdadero problema: A la versión 10 de Debian han decidido no ponerle los paquetes de JDK8, solo instala la versión más reciente.

La solución que encontramos y aplicamos, básicamente, consistía en añadirle un repositorio principal donde si se encontrara ese paquete.

sudo nano /etc/apt/sources.list

Añadimos la siguiente linea al fichero de configuración

deb http://deb.debian.org/debian/ sid main

Lanzamos update+upgrade:

sudo apt-get update
sudo apt-get upgrade

Y por último ya instalamos la versión deseada de jdk.

sudo apt-get install -y openjdk-8-jdk

Siempre podemos y debemos comprobar que la versión instalada está bien.

java -version

Resultado:

openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

Problema resuelto!

Scroll hacia arriba