Skip to content

Optimizacion y administracion de NiFi ​

Optimizar NiFi significa equilibrar rendimiento, estabilidad y operabilidad. No se trata solo de subir concurrencia: tambien hay que controlar colas, repositorios, back pressure, tiempos de ejecucion y dependencias externas.

Donde se consume rendimiento ​

Los cuellos de botella suelen aparecer en:

  • Procesadores que esperan red o APIs externas.
  • Escrituras lentas a disco, base de datos o Kafka.
  • Transformaciones pesadas sobre contenido grande.
  • Colas sin back pressure.
  • Reintentos excesivos.
  • Repositorios mal dimensionados.
  • Cluster con nodos desequilibrados.

Mide antes de cambiar parametros globales.

Concurrent tasks ​

Cada processor puede ejecutar varias tareas concurrentes. Aumentarlas puede mejorar throughput si el processor esta limitado por I/O, pero puede empeorar el sistema si el destino no soporta mas carga.

Buenas practicas:

  • Sube concurrencia gradualmente.
  • Observa CPU, memoria, disco y latencia del destino.
  • No aumentes todo a la vez.
  • Ajusta primero los processors que realmente bloquean el flujo.

Run schedule ​

El run schedule controla cada cuanto se dispara un processor.

Ejemplos:

  • 0 sec: intenta ejecutar continuamente.
  • 5 sec: ejecuta cada cinco segundos.
  • 1 min: util para polling menos agresivo.

Un processor que consulta una API externa no deberia ejecutarse sin pausa si la API tiene limites.

Back pressure ​

Back pressure evita que un flujo produzca mas datos de los que la siguiente fase puede consumir.

Se configura en las connections:

  • Por numero de FlowFiles.
  • Por tamano total en cola.

Sin back pressure, un destino lento puede llenar repositorios y afectar a todo el cluster.

Repositorios ​

NiFi usa varios repositorios internos:

  • FlowFile Repository: estado de FlowFiles.
  • Content Repository: contenido real.
  • Provenance Repository: historial de eventos.
  • Database Repository: estado interno en versiones modernas.

Recomendaciones:

  • Usar discos rapidos para repositorios criticos.
  • Separar content y provenance si el volumen es alto.
  • Configurar retencion de provenance segun necesidades reales.
  • Monitorizar uso de disco.

Cluster ​

En cluster, varios nodos ejecutan el mismo flujo.

Ten en cuenta:

  • Algunos processors deben ejecutarse solo en el primary node.
  • Las colas pertenecen a nodos concretos.
  • El balanceo de carga entre nodos puede ayudar en flujos distribuidos.
  • Un nodo lento puede acumular cola aunque otros esten sanos.

Seguridad ​

En produccion, NiFi debe operar con seguridad activada.

Aspectos basicos:

  • HTTPS.
  • Autenticacion.
  • Autorizacion por politicas.
  • Certificados correctamente gestionados.
  • Credenciales como parametros sensibles.
  • Acceso minimo necesario.
  • Auditoria de cambios.

Mantenimiento ​

Tareas habituales:

  • Revisar colas acumuladas.
  • Limpiar datos obsoletos.
  • Revisar provenance y retencion.
  • Actualizar processors y extensiones.
  • Versionar cambios en Registry.
  • Validar backups de configuracion.
  • Revisar logs y uso de disco.

Problemas frecuentes ​

SintomaPosible causaAccion
Cola crece sin pararDestino lentoRevisar back pressure y throughput
CPU altaTransformacion costosaReducir concurrencia o mover a Spark
Disco llenoContent/provenance acumuladoAjustar retencion y revisar colas
Muchos retriesDependencia externa inestableSeparar retry y failure
Cluster desequilibradoFlujo no balanceadoRevisar load balancing

Checklist de produccion ​

  • Seguridad activada.
  • Repositorios dimensionados.
  • Back pressure configurado.
  • Retencion de provenance definida.
  • Flujos versionados.
  • Parametros separados por entorno.
  • Alertas de disco, colas y errores.
  • Runbook de parada, arranque y recuperacion.

Recursos relacionados ​