Guía rápida para conectar Apache Spark y Apache Zeppelin con InterSystems IRIS

Hola a todos, me gustaría compartir una guía rápida publicada en el Developer Community sobre cómo conectar Apache Spark +  Apache Zeppelin con InterSystems IRIS. 

Introducción

Apache Spark es un framework opensource para computación en cluster. Proporciona una interfaz para desarrollar sobre clusters incluyendo paralelismo y tolerancia a fallos. Por ello es muy utilizado en Big Data.

Apache Zeppelin es un bloc de notas, que cuenta con una excelente interfaz de usuario para trabajar con diversos tipos análisis y machine learning.

Combinándolo con InterSystems IRIS, el conjunto funciona de tal manera que: IRIS proporciona los datos, Spark los lee y los trabajamos con en un bloc de notas de Apache Zeppelin.

Nota: la guía se ha confeccionado ejecutando los pasos sobre Windows 10.

Apache Zeppelin

Ahora instalaremos los programas necesarios. Antes que nada, descargamos Apache Zeppelin de su sitio oficial. Hemos utilizado zeppelin-0.8.0-bin-all.tgz que incluye Apache SparkScala, y Python. 

Tras descomprimirlo, podemos ejecutar Zeppelin con el script con \bin\zeppelin.cmd, que se encuentra en la raíz de su carpeta Zeppelin. Tras aparecer "Done, zeppelin server started" ya podemos abrir la interfaz http://localhost:8080 en el navegador. Si todo se ejecutó de manera correcta, aparecerá lo siguiente:

Apache Spark

En la interfaz de Zeppelin, hacemos click en la esquina superior derecha de la pantalla en  anonymous > Interpreter. Nos desplazamos hacia abajo y buscamos spark.

Hacemos click en el botón edit que aparece junto a spark y nos desplazamos hacia abajo para añadir las dependencias a las librerías jar que necesitamos (se encuentran en el directorio dev\java\lib\JDK de la instalación de IRIS).

Comprobar el funcionamiento

Vamos a comprobar que funciona. Creamos una nueva nota en Zeppelin, y en un párrafo nuevo escribimos el siguiente código para recuperar datos de una tabla Sample.Person:

var dataFrame=spark.read.format("com.intersystems.spark").option("url", "IRIS://localhost:51773/NAMESPACE").option("user", "UserLogin").option("password", "UserPassword").option("dbtable", "Sample.Person").load()

// dbtable - pasar el nombre de la tabla a cargar (e.g. Sample.Person)

La URL de IRIS tiene la siguiente forma:IRIS://ipAddress:superserverPort/namespace:

  • El protocolo IRIS es una conexión JDBC hecha sobre TCP/IP que ofrece una conexión de memoria compartida con Java.
  • ipAddress — La dirección IP de la instancia InterSystems IRIS.
  • superserverPort — El número de puerto del superservidor para la instancia IRIS (no es el puerto web). Recuerda que para consultar el número puerto del superservidor de IRIS puedes ir al Portal de Administración del sistema System Administration > Configuration > System Configuration > Memory and Startup (SuperServer port)
  • Namespace - Namespace de la instancia al que vamos a conectarnos.

Al ejecutarlo, si todo va bien aparecerá como FINISHED

Conclusión

En esta guía descubrimos cómo hacer que Apache Spark, Apache Zeppelin e InterSystems IRIS trabajen en conjunto. En próximos artículos hablaremos sobre las distintas formas que existen para analizar datos.

Enlaces