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.
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.
- 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.
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.
Seguir el proceso en segundo plano.
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 |