Apache Spark
Introducción
Apache Spark es Framework Open Source que permite realizar cluster computing.
Brindando una interfaz de alto nivel, Apache Spark simplifica la programación a través paralelismo de datos implícito en su paradigma y tolerancia a fallos en el manejo del cluster.
Objetivo
El objetivo de esta guía es tener un entorno de Apache Spark funcional.
Instalación
Instalacion de Java
Para realizar la instalación de Java, visitar el capitulo Java de la guía.
Una vez realizada la instalación podremos proseguir con los siguientes pasos.
Instalacion Apache Spark
Usaremos una versión pre-built para hadoop 2.7 en esta instalación (pueden verse las distintas alternativas en https://spark.apache.org/downloads.html).
Recomendamos buscar un directorio donde quieran dejar la instalación realizada y allí descargar el tar.gz
, luego vamos a referenciar ese path de instalación desde nuestras variables de PATH
, etc.
wget http://apache.dattatec.com/spark/spark-2.3.0/spark-2.3.0-bin-hadoop2.7.tgz
o descargando en el directorio donde haremos la instalación usando un navegador.
Luego descomprimimos el paquete en ese directorio:
tar -xvzf spark-2.3.0-bin-hadoop2.7.tgz
Verificando la instalacion
Para verificar la instalación, ingresamos al directorio de instalación.
cd spark-2.3.0-bin-hadoop2.7
y podemos ejecutar el entorno de pyspark
# running pyspark
./bin/pyspark
Este paso podria fallar si no hay una instalación de python, mas alla de que usualmente esta instalado por default en el sistema. (no se preocupen, sera instalado en la seccion de jupyter junto a los devtools).
o el spark shell de scala
# running spark-shell
./bin/spark-shell
En pyspark se puede salir con quit()
y en spark-shell con :quit
Configuración de Variables de Entorno
Para poder utilizar spark desde otros aplicativos y entornos (por ejemplo python), debemos configurar algunas variables de entorno.
Como hicimos anteriormente para Java tendremos que configurar variables de entorno en ~/.bashrc
SPARK_HOME
Editamos el archivo ~/.bashrc
y agregamos la variable de entorno SPARK_HOME
apuntando al directorio donde se instalo Apache Spark.
export SPARK_HOME="/path/de/instalacion/spark-2.3.0-bin-hadoop2.7"
Reemplazando /path/de/instalacion
por el correcto (puede obtenerse usando pwd
desde el shell).
PYTHONPATH
Para poder utilizar pyspark, es necesario agregar las librerias de spark para python (que se encuentran dentro del directorio python
del directorio de instalación de Spark).
Para ello sera necesario modificar la variable de entorno PYTHONPATH
de forma similar que lo hicimos anteriormente con la instalación de Java.
Editamos el archivo ~/.bashrc
y redefinimos la variable de entorno PYTHONPATH
.
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH
Nota
Verificar que la libreria py4j
sea la misma version que indicamos en la documentación, realizando desde el directorio de instalación de Spark un ls -l python/lib
Agregando Apache Spark al PATH
Para poder acceder mas facilmente a los comandos desde cualquier lugar pueden incluir el directorio bin
de instalación en el path del shell.
Para hacerlo editar ~.bashrc en su directorio home adicionando la siguiente linea para redefinir la variable de entorno PATH
usando la variable $SPARK_HOME
que definieron anteriormente. (es por eso que es importante que esta definicion se encuentre despues de la de $SPARK_HOME
.)
export PATH=$PATH:$SPARK_HOME/bin
De esta forma el comando pyspark
o spark-shell
va a poder ejecutarse desde cualquier directorio.