Plugin Apache Spark

Plugin para coger metricas de todos los ejecutores de todas las apps en ejecución o finalizadas de tu server Spark.

Introducción

Ver. 03-09-2021

Plugin para coger metricas de todos los ejecutores de todas las apps en ejecución o finalizadas de tu server Spark.

Tipo: Plug-in de servidor 

Matriz de compatibilidad

Sistemas donde se ha probado

CentOS 7, Fedora

Sistemas donde debería funcionar

Cualquier sistema linux 

 

Pre requisitos

Se requiere:

Configuración

El plugin hace uso de unos endpoints de la rest api de Spark, para poder acceder a ellos desde el plugin tendremos que tener una serie de puertos activos y que no los bloquee el firewall, estos son los siguientes :

firewall-cmd --permanent --zone=public --add-port=6066/tcp
firewall-cmd --permanent --zone=public --add-port=7077/tcp
firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp
firewall-cmd --permanent --zone=public --add-port=4040/tcp
firewall-cmd --permanent --zone=public --add-port=18080/tcp
firewall-cmd --reload

6066: Rest url (cluster mode).

7077: Server master.

8080 : Web UI.

4040: Para aplicaciones en ejecución.

18080: Para el history server.

Para poder hacer uso del history server tendremos que activar spark.eventLog.enabled, spark.eventLog.dirspark.history.fs.logDirectory en spark-defaults.conf.

Podemos encontrar una plantilla del conf en /conf

1.png

Crearemos en esa ruta el archivo con:

vi spark-defaults.conf

Y lo dejaremos así, puedes elegir la ruta en la que quieres guardar los eventos.

2.png

Ahora podremos activar el history server, en /sbin la misma ruta donde se activa el master, los workers, etc.

3.png

Lo iniciaremos con :

./start-history-server.sh

4.png

Si vamos al log que nos devuelve la salida veremos como correctamente se ha iniciado y su url.

5.png

Si accedemos a la url veremos como nos sale el history server.

6.png

Nota:

Esto se presupone, pero para que funcione el plugin se tendrá que tener activo el server maestro, así como tener aplicaciones en ejecución o que han sido ejecutadas y han finalizado, ya que es de las aplicaciones de lo que cogeremos las métricas, concretamente de sus ejecutores.

 

 

Parámetros generales del plugin

./pandora_spark -i <ip-with-port> -[ -g <group> ] [ --data_dir <data dir> ] 

Si la ejecución es correcta veremos un 1.

7.png

Si quieres coger los datos de aplicaciones en ejecución, introduce la ip con el puerto 4040, si quieres coger los datos de aplicaciones finalizadas introduce el puerto 18080.

Parámetros específicos del plugin

El plugin cuenta con los siguientes parámetros:

Parameter Description
-i <ip-with-port> --ip <ip-with-port> ip con el puerto, obligatorio.
-g GROUP, --group GROUP Grupo de destino de Pandora FMS (opcional)
--data_dir DATA_DIR Directorio de datos de Pandora FMS. Por defecto es /var/spool/pandora/data_in/ (opcional)

Ejemplo de ayuda:

./pandora_spark

8.png

Configuración en pandora

Instalación desde consola

Para el registro del plugin, desde la consola, se debe ir al apartado "registrar plugin".

register_plugin.png

Daremos a seleccionar archivo.

register_plugin2.png

Seleccionaremos el fichero.pspz2 que contiene el plugin.

register1_spark.png

Una vez subido se nos mostrará un mensaje indicando que ha salido correctamente.

register2_spark.png

Una vez registrado el plugin, lo veremos en el apartado plugins.

serversingles.png

En el apartado de parámetros, saldrán todos los que contiene el plugin, aunque solo será obligatorio usar el de ip.

register3_spark.png

Abajo podremos asignarle el valor requerido a cada macro.

register4_plugin.png

 

Instalación manual

La mejor forma de manejar plugins de servidor en Pandora es desde "/usr/share/pandora_server/util/plugin" asi que lo enviaremos esa ruta.

Después nos moveremos a la carpeta en la que lo hemos metido ( "/usr/share/pandora_server/util/plugin" es la recomendada").

Recuerda: Tienes que instalar las dependencias que necesita el módulo Requests en tu sistema, esta explicado en el apartado configuración.

Nos movemos desde home con :
cd /usr/share/pandora_server/util/plugin/

Ejecutamos el plugin para ver que funciona :

./pandora_spark -i <ip-with-port> -[ -g <group> ] [ --data_dir <data dir> ]

7.png

 

Como plugin de servidor

Iremos a servidores > plugins: