Post on 14-Jul-2022
Plugin para coger metricas de todos los ejecutores de todas las apps en ejecución o finalizadas detu server Spark.
IntroducciónMatriz de compatibilidadPre requisitosConfiguraciónParámetros generales del pluginParámetros específicos del pluginConfiguración en pandoraMódulos generados
Plugin Apache Spark
Ver. 03-09-2021
Plugin para coger metricas de todos los ejecutores de todas las apps en ejecución o finalizadas detu server Spark.
Tipo: Plug-in de servidor
Introducción
Sistemas donde se ha probado CentOS 7, Fedora
Sistemas donde debería funcionar Cualquier sistema linux
Matriz de compatibilidad
Se requiere:
Un servidor SparkTener activado el history server de SparkTener el Data Server de Pandora FMS habilitadoTener el Plugin Server de Pandora FMS habilitado
Pre requisitos
El plugin hace uso de unos endpoints de la rest api de Spark, para poder acceder a ellos desde elplugin tendremos que tener una serie de puertos activos y que no los bloquee el firewall, estos sonlos siguientes :
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.dir y spark.history.fs.logDirectory en spark-defaults.conf.
Podemos encontrar una plantilla del conf en /conf
Crearemos en esa ruta el archivo con:
Configuración
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
Y lo dejaremos así, puedes elegir la ruta en la que quieres guardar los eventos.
Ahora podremos activar el history server, en /sbin la misma ruta donde se activa el master, losworkers, etc.
Lo iniciaremos con :
Si vamos al log que nos devuelve la salida veremos como correctamente se ha iniciado y su url.
Si accedemos a la url veremos como nos sale el history server.
vi spark-defaults.conf
./start-history-server.sh
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 delas aplicaciones de lo que cogeremos las métricas, concretamente de sus ejecutores.
Si la ejecución es correcta veremos un 1.
Si quieres coger los datos de aplicaciones en ejecución, introduce la ip con el puerto 4040, siquieres coger los datos de aplicaciones finalizadas introduce el puerto 18080.
Parámetros generales delplugin
./pandora_spark -i <ip-with-port> -[ -g <group> ] [ --data_dir <data dir> ]
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_DIRDirectorio de datos de Pandora FMS. Por defecto es /var/spool/pandora/data_in/(opcional)
Ejemplo de ayuda:
Parámetros específicos delplugin
./pandora_spark
Instalación desde consola
Para el registro del plugin, desde la consola, se debe ir al apartado "registrar plugin".
Daremos a seleccionar archivo.
Seleccionaremos el fichero.pspz2 que contiene el plugin.
Una vez subido se nos mostrará un mensaje indicando que ha salido correctamente.
Configuración en pandora
Una vez registrado el plugin, lo veremos en el apartado plugins.
En el apartado de parámetros, saldrán todos los que contiene el plugin, aunque solo seráobligatorio usar el de ip.
Abajo podremos asignarle el valor requerido a cada macro.
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 :
Ejecutamos el plugin para ver que funciona :
cd /usr/share/pandora_server/util/plugin/
./pandora_spark -i <ip-with-port> -[ -g <group> ] [ --data_dir <data dir> ]
Como plugin de servidor
Iremos a servidores > plugins:
Pinchamos en añadir:
Le ponemos en nombre y la descripción que se prefiera:
Metemos como comando la ruta al plugin, y como parámetros los que hemos metido ejecutando elplugin, los campos "_field_" son macros definidas más abajo.
Ponemos por cada macro la descripción que se prefiera y como valor los datos de tu ip.
Hecho esto si ejecutamos el plugin desde el terminal se nos habrá creado el agente con losmódulos.
Se nos creará un agente por cada aplicación de nuestro server con datos de todos sus ejecutores,el nombre de cada módulo estará compuesto de la id del ejecutor más su función.
Módulos de los ejecutores
Nombre del módulo
id
hostPort
rddBlocks
memoryUsed
diskUsed
activeTasks
failedTasks
completedTasks
totalTasks
totalDuration
totalInputBytes
totalShuffleRead
totalShuffleWrite
maxMemory
Módulos generados