1. Manejo Básico de Aplicaciones

El propósito de este documento es proporcionar conocimientos básicos de las aplicaciones/servicios de Griaule y sus componentes requeridos a todos los usuarios. Después de leer el documento, el usuario debería ser capaz de administrar las aplicaciones y realizar solución de problemas básicos.

1.1. Arquitectura

Es posible simplificar la arquitectura de GBDS a cuatro componentes principales y la aplicación Integrator. Cada uno de estos componentes se comunica entre sí como se muestra en la figura a continuación. Estos componentes son:

  • GBDS: API, Matcher y Notifier. Las principales aplicaciones de Griaule.
  • Servicios: ETR, Cardscan y BEST. Servicios de cliente y web que interactuarán directamente con las aplicaciones de Griaule.
  • RDB: Base de datos relacional. Utilizada para almacenar metadatos de referencia.
  • Hadoop: Colección de software de código abierto diseñado para el almacenamiento distribuido y el procesamiento de grandes cantidades de datos. También maneja la comunicación entre las aplicaciones de Griaule.
  • Integrator: Aplicación de cliente utilizada para realizar actividades específicas o personalizaciones utilizando las aplicaciones de Griaule.
../../../_images/archFlow1.png

1.2. Directorios y Comandos

Esta sección mostrará los directorios donde se encuentran los archivos, los comandos de inicialización y cómo realizar verificaciones de salud.

1.2.1. Administración de GBDS

GBDS está compuesto por la API de GBDS, el Matcher y el Notifier.

1.2.1.1. API Handling

Operation Terminal Command
Start service gbsapid start
Stop service gbsapid stop
Status service gbsapid status
Restart service gbsapid restart
Directories Path
Home Directory /var/lib/griaule/gbsapi
Configuration Directory /etc/griaule/conf/gbsapi
Main Configuration File /etc/griaule/conf/gbsapi/gbdsapi.properties
Log Directory /var/log/griaule/gbsapi/
Main Log File /var/log/griaule/gbsapi/gbsapi.log

1.2.1.2. Matcher Handling

Operation Terminal Command
Start 1 Node /var/lib/griaule/gbds/scripts/start-gbds.sh
Stop 1 Node /var/lib/griaule/gbds/scripts/kill-gbds.sh
Start Cluster /var/lib/griaule/gbds/scripts/start-cluster.sh
Stop Cluster /var/lib/griaule/gbds/scripts/kill-cluster.sh
Directories Path
Home Directory /var/lib/griaule/gbds
Configuration Directory /etc/griaule/conf/gbds
Main Configuration File /etc/griaule/conf/gbds/application.conf
Log Directory /var/log/griaule/gbds/
Main Log File /var/log/griaule/gbds/gbds.log

1.2.1.3. Notifier Handling

Operation Terminal Command
Start service gbsnotifierd start
Stop service gbsnotifierd stop
Status service gbsnotifierd status
Restart service gbsnotifierd restart
Directories Path
Home Directory /var/lib/griaule/gbsnotifier
Configuration Directory /etc/griaule/conf/gbsnotifier
Main Configuration File /etc/griaule/conf/gbsnotifier/notifier.properties
Log Directory /var/log/griaule/gbsnotifier/
Main Log File /var/log/griaule/gbsnotifier/notifier.log

1.2.1.4. Comprobaciones de salud

Esta sección describe algunos métodos para monitorear o solucionar problemas de las aplicaciones.

  • Confirmar que la aplicación se inició correctamente.

    En la terminal, debería ver líneas similares a:

API:

{fecha} {hora},257 [INFO ] Http11NioProtocol - Starting ProtocolHandler ["http-n io-8085"]
{fecha} {hora},262 [INFO ] NioSelectorPool - Using a shared selector for servlet write/reading
{fecha} {hora},823 [INFO ] API - Started API in {tiempo} seconds (JVM running for {tiempo})

Matcher:

{fecha} {hora},180 [INFO ] TaskConsumer - Starting consumer using consumer group: spt-02-gbds-tasks
{fecha} {hora},182 [INFO ] PriorityConsumer - subscribed to gbds-tasks-GOD_PRIORITY
{fecha} {hora},184 [INFO ] PriorityConsumer - subscribed to gbds-tasks-HIGHEST_PRIORITY
{fecha} {hora},186 [INFO ] PriorityConsumer - subscribed to gbds-tasks-HIGHER_PRIORITY
{fecha} {hora},187 [INFO ] PriorityConsumer - subscribed to gbds-tasks-HIGH_PRIORITY
{fecha} {hora},189 [INFO ] PriorityConsumer - subscribed to gbds-tasks-DEFAULT_PRIORITY
{fecha} {hora},191 [INFO ] PriorityConsumer - subscribed to gbds-tasks-LOW_PRIORITY
{fecha} {hora},192 [INFO ] PriorityConsumer - subscribed to gbds-tasks-LOWER_PRIORITY
{fecha} {hora},197 [INFO ] PriorityConsumer - subscribed to gbds-tasks-LOWEST_PRIORITY

Notifier:

{fecha} {hora},418 Notifier - group-ETR - notifier-$a - creating notifier
{fecha} {hora},424 NotificationConsumer - group-ETR - notification-supervisor-group-ETR is ready. Start consuming
  • Verificar si el proceso de la aplicación está en ejecución.
ps -ef | grep gbsapi | grep -v grep ps -ef | grep matcher | grep -v grep ps -ef | grep gbsnotifier | grep -v grep

Note

gbsapid y gbsnotifierd se pueden verificar a través del comando service <appd> status.

  • Verifique si los registros se están actualizando correctamente con las últimas marcas de tiempo actuales.
tailf /var/log/griaule/gbsapi/gbsapi.log tailf /var/log/griaule/gbds/gbds.log tailf /var/log/griaule/gbsnotifier/notifier.log
  • Verifique si la API está procesando correctamente (CURL/HTTP)

API:

curl -v http://localhost:8085/gbds/v2/operations/ping

Conexión a la base de datos:

curl -v http://localhost:8085/gbds/v2/exceptions/EndDate=1400000000000

1.2.2. Gestión de servicios

Compuesto por Best Server, CardScan Web y ETR Web.

1.2.2.1. Manejo de Best

Operación Comando de terminal
Iniciar systemctl start tomcat@best.service Detener systemctl stop tomcat@best.service Estado systemctl status tomcat@best.service
Directorios Ruta
Directorio de inicio /var/lib/tomcats/best Directorio de configuración /var/lib/tomcats/best/conf Archivo de configuración principal /var/lib/tomcats/best/conf/config.properties Directorio de registro /var/lib/tomcats/best/logs Archivo de registro principal /var/lib/tomcats/best/logs/catalina-<date>.log

1.2.2.2. Manejo de CardScan

Operación Comando de terminal
Iniciar systemctl start tomcat@cardscan.service Detener systemctl stop tomcat@cardscan.service Estado systemctl status tomcat@cardscan.service
Directorios Ruta
Directorio de inicio /var/lib/tomcats/cardscan Directorio de configuración /var/lib/tomcats/cardscan/conf Archivo de configuración principal /var/lib/tomcats/cardscan/conf/config.properties Directorio de registro /var/lib/tomcats/cardscan/logs Archivo de registro principal /var/lib/tomcats/cardscan/logs/catalina-<date>.log

1.2.2.3. Manejo de ETR

Operación Comando de terminal

Inicio systemctl start tomcat@etr.service Detener systemctl stop tomcat@etr.service Estado systemctl status tomcat@etr.service

Directorios Ruta ========================== ======================================================== Directorio de inicio /var/lib/tomcats/etr Directorio de configuración /var/lib/tomcats/etr/conf Archivo de configuración principal /var/lib/tomcats/etr/conf/config.properties Directorio de registro /var/lib/tomcats/etr/logs Archivo de registro principal /var/lib/tomcats/etr/logs/catalina-<fecha>.log ========================== ========================================================

1.2.2.4. Comprobaciones de salud

Esta sección describe algunos métodos para monitorear o solucionar problemas con los servicios.

  • Confirmar que los servicios se iniciaron correctamente.

    En la terminal, debería ver líneas similares a:

BEST:

{fecha} {hora} spt02 server[5860]: {fecha} {hora} org.apache.coyote.AbstractProtocol start
{fecha} {hora} spt02 server[5860]: INFO: Starting ProtocolHandler ["http-nio-8123"]
{fecha} {hora} spt02 server[5860]: {fecha} {hora} org.apache.catalina.startup.Catalina start
{fecha} {hora} spt02 server[5860]: INFO: Server startup in {tiempo} ms
{fecha} {hora} spt02 java[5860]: CaptureManager: waiting for some USB event...
{fecha} {hora} spt02 server[5860]: {fecha} {hora} [Pooling thread] INFO com.griaule.best.service.SearchService - Start pooling verification of pending/processing searchs
{fecha} {hora} spt02 server[5860]: {fecha} {hora} [Pooling thread] INFO com.griaule.best.service.SearchService - End of polling: # searches checked.

Note

Después de iniciado, BEST debería comenzar a verificar búsquedas de verificación de agrupación de vez en cuando.

CardScan:

{fecha} {hora} spt02 server[3657]: {fecha} {hora} org.apache.coyote.AbstractProtocol start
{fecha} {hora} spt02 server[3657]: INFO: Starting ProtocolHandler ["http-nio-8087"]
{fecha} {hora} spt02 server[3657]: {fecha} {hora} org.apache.catalina.startup.Catalina start
{fecha} {hora} spt02 server[3657]: INFO: Server startup in (tiempo) ms
{fecha} {hora} spt02 java[3657]: CaptureManager: waiting for some USB event...
{fecha} {hora} spt02 server[3657]: {fecha} {hora} [Profile queue thread] INFO com.griaule.cardscan.service.ProfileService - Get Next [GBDS_READY, GBDS_OK] profiles to process

Note

Después de iniciado, CardScan debería verificar si hay algún perfil para procesar de vez en cuando.

ETR:

{fecha} {hora} spt02 server[790]: {fecha} {hora} org.apache.coyote.AbstractProtocol start
{fecha} {hora} spt02 server[790]: INFO: Starting ProtocolHandler ["http-nio-8089"]

Note

Después de iniciado, ETR debería intentar sincronizar todas las excepciones y tratamientos.

  • Para ETR y CardScan web, si acaba de instalar el servicio o si eliminó el directorio del servidor de servicio para una nueva implementación, después de un inicio exitoso, ejecute el script de configuración para una configuración adicional.
/var/lib/tomcats/setup.sh <app>

Donde <app> puede ser etr o cardscan.

1.2.3. Gestión de bases de datos relacionales

Compuesto por MySQL o MariaDB.

1.2.3.1. Manejo de la base de datos

Operación Comando de terminal
Iniciar service mysqld start Detener service mysqld stop Estado service mysqld status Reiniciar service mysqld restart
Directorios Ruta
Directorio de inicio /var/lib/mysql Directorio de configuración /etc/my.cnf.d Archivo de configuración principal /etc/my.cnf Directorio de registro /var/log Archivo de registro principal /var/log/messages

1.2.3.2. Verificación de la salud

Esta sección describe algunos métodos para monitorear o solucionar problemas en la operación de la base de datos.

  • Confirme que el servicio está en funcionamiento.

Ejecute la operación status en la terminal. Se espera algo similar a:

[usuario] service mysqld status Redirigiendo a /bin/systemctl status mysql.service mariadb.service - Servidor de base de datos MariaDB {versión} Cargado: cargado (/usr/lib/systemd/system/mariadb.service; habilitado; preset del proveedor: deshabilitado) Drop-In: /etc/systemd/mariadb.service.d migrated-from-my.cnf-setting.conf Activo: activo (en ejecución) desde {fecha} {hora}; {tiempo transcurrido}
    Docs: mand:mysql(8) https://mariadb.com/kb/en/library/systemd/
 Maind PID: 15061 (mysqld) Estado: "Tomando su solicitud SQL ahora..." Cgroup: /system.slice/mariadb.service 15061 /usr/sbin/mysqld --basedir=/usr
  • Verifique si el proceso del servicio está en ejecución.
ps -ef | grep mysqld | grep -v grep
  • Verifique si hay errores en los registros.
less /var/log/messages | grep mysqld

Important

Es necesario detener las aplicaciones de GBDS antes de detener o reiniciar este servicio.

GBDS NO se reconectará automáticamente.

Danger

Detener la base de datos mientras GBDS está procesando puede causar problemas y corrupción de datos.

Si se realizó algún cambio de configuración, reinícielo para que surta efecto.

1.3. Gestión de Hadoop

Los servicios de Hortonworks Data Platform (HDP) utilizados en GBDS están compuestos por 6 servicios, cada uno con una función específica:

  • HDFS - Sistema de archivos distribuido.
  • HBASE - Base de datos no relacional para Big Data.
  • KAFKA - Sistema de cola. Maneja la transferencia de datos entre aplicaciones.
  • ZOOKEEPER - Maneja la gestión y sincronización de todos los servicios de HDP.
  • RANGER + SOLR - Capa de seguridad. Maneja la autenticación de usuarios y la auditoría.

Todos estos servicios son administrados por una interfaz gráfica de usuario (GUI) llamada AMBARI. El servidor AMBARI se ejecuta en el nodo maestro, los agentes de AMBARI (cliente) se ejecutan en todos los servidores.

1.3.1. Manejo de servicios HDP

Esta sección describirá cómo manejar los servicios con la GUI de AMBARI. Es importante tener en cuenta que todos los servicios son sensibles, y algunos servicios críticos como HBASE y HDFS pueden tardar algún tiempo en estabilizarse, especialmente en grandes clústeres. Esto es importante al inicializar o reiniciar los servicios.

  • Acceda a la GUI de AMBARI en http://<hostname>:8080/#/login

    El nombre de usuario y la contraseña predeterminados son ambos “admin”.

  • La información del servicio se muestra en la barra lateral izquierda.

    ../../../_images/ambariStatus1.png
    • Verde significa que el servicio está en funcionamiento.
    • Rojo significa que el servicio está detenido.
    • Un punto rojo con números en el lado izquierdo significa que se encontraron alertas para el servicio especificado.
    • Si un servicio está en modo de mantenimiento (maleta con símbolo + en el medio), las alertas se suprimirán.
  • Iniciar, detener y reiniciar servicios.

    Para iniciar/detener/reiniciar el servicio, el usuario puede hacer clic en el símbolo “…” en la barra lateral izquierda, se mostrarán opciones para iniciar, detener o reiniciar todos los servicios.

    ../../../_images/servicesMenu1.png

    Para iniciar, detener o reiniciar un servicio a la vez, haga clic en el servicio y en la esquina superior derecha, haga clic en el botón “ACCIONES”, luego seleccione la acción deseada.

    ../../../_images/actionsMenu1.png
  • Seguir el proceso en segundo plano.

    Para seguir los procesos en segundo plano, haga clic en el icono del motor en la barra de menú superior.

    ../../../_images/backgroundProcess1.png

1.3.2. Manejo de AMBARI

Para iniciar, detener o verificar el estado del servidor o agente, siga el comando descrito en la tabla a continuación.

Operación Comando de terminal
Iniciar agente ambari-agent start Detener agente ambari-agent stop Estado del agente ambari-agent status Iniciar servidor ambari-server start Detener servidor ambari-server stop Estado del servidor ambari-server status

1.3.3. Registros

Dado que los servicios HDP son de código abierto, el usuario puede encontrar la documentación en línea. Si hay un problema, para ayudar en la solución de problemas, siga algunas ubicaciones de registros:

Directorios Ruta
HDFS /var/log/haddop/hdfs HBASE /var/log/hbase ZOOKEEPER /var/log/zookeeper KAFKA /var/log/kafka RANGER /var/log/ranger Agente de AMBARI /var/log/ambari-agent Servidor de AMBARI /var/log/ambari-server