Este tema responde a las preguntas operativas más comunes sobre Kafka en E-MapReduce (EMR). Abarca la gestión de registros, el control de componentes, el diagnóstico de errores y la planificación de capacidad.
¿Cómo limpio los registros de salida del componente Kafka?
Si los registros de salida del componente Kafka consumen demasiado espacio en disco, elimine los archivos de registro directamente desde el directorio de registros.
Los componentes relacionados con Kafka almacenan sus registros en $LOG_DIR_ROOT (valor predeterminado: /mnt/disk1/log). Cada componente cuenta con su propio subdirectorio:
|
Componente |
Directorio de registros |
|
Kafka |
|
|
Cruise Control |
|
|
Schema Registry |
|
|
REST Proxy |
|
Acceda al directorio correspondiente y elimine los archivos de registro que ya no necesite.
¿Cómo limpio los registros de salida del componente Kafka Manager?
Vaya a $LOG_DIR_ROOT/kafka-manager (valor predeterminado: /mnt/disk1/log/kafka-manager) y elimine los archivos de registro.
¿Puedo detener el componente Kafka Manager?
Sí. Kafka no depende de Kafka Manager para las operaciones de lectura y escritura, por lo que detenerlo no afecta su servicio de Kafka.
Si no ha integrado otra plataforma de gestión de Kafka, mantenga Kafka Manager en ejecución, ya que es su única interfaz de administración. Si cuenta con una alternativa y ya no necesita Kafka Manager, deténgalo desde la pestaña Services de su clúster en la consola de EMR.
¿Cómo soluciono el error "Replication factor: 1 larger than available brokers: 0"?
Este error tiene dos causas posibles:
El proceso del broker finalizó. Revise los registros del broker para identificar el fallo y reinicie el proceso del broker.
La configuración de hosts de ZooKeeper es incorrecta. En la consola de EMR, actualice el parámetro Cluster Zookeeper Hosts para que coincida con el valor de
kafka.manager.zookeeper.hosts.
¿Cómo soluciono el error "java.net.BindException: Address already in use (Bind failed)"?
El puerto de Java Management Extensions (JMX) ya está en uso. Especifique un puerto JMX distinto antes de ejecutar el comando:
JMX_PORT=10101 kafka-topics.sh --bootstrap-server core-1-1:9092 --list
¿Cómo soluciono el error "current leader's lastest offset xxxx is less than replica's lastest offset xxxxxx"?
Este error indica que el líder actual está rezagado respecto a una réplica, lo cual impide una elección limpia de líder.
Antes de continuar, confirme que se consumieron todos los datos o que la pérdida de datos es aceptable. Después, siga estos pasos:
Establezca
unclean.leader.election.enableentrueen el componente broker de Kafka.Reinicie el componente broker de Kafka.
Una vez finalizado el reinicio, vuelva a establecer
unclean.leader.election.enableenfalse.
¿Qué hago si el disco que almacena los datos de Kafka en el directorio de registros está lleno?
Cuando el disco del directorio de registros se llena, dicho directorio queda fuera de línea. Siga los pasos descritos en Perform O\&M operations when the disk space of an EMR Kafka cluster is full para recuperarlo.
¿Cómo soluciono el error "Too many open files"?
Este error ocurre cuando la cantidad de descriptores de archivo abiertos supera el límite del sistema. Por lo general, esto se debe a un número elevado de particiones o conexiones de red.
Aumente el límite de descriptores de archivo en /etc/security/limits.conf. Agregue o actualice a continuación las siguientes líneas al final del archivo:
* soft nofile <new-limit>
* hard nofile <new-limit>
Reemplace <new-limit> por un valor adecuado para su carga de trabajo. Después de guardar el archivo, reinicie los componentes afectados.
¿Cómo calculo la cantidad de particiones obligatorias para un topic de Kafka?
Utilice el siguiente método:
Mida el throughput del productor por partición. Ejecute una prueba de estrés para obtener el throughput (en MB/s) que una sola partición sostiene dentro de la latencia objetivo.
Calcule el tráfico esperado. Determine la tasa máxima de ingesta que su topic debe manejar.
Determine la cantidad de particiones necesarias. Con base en el throughput medido por partición y el tráfico esperado del negocio, calcule cuántas particiones requiere el topic.
Ajuste según el paralelismo de los consumidores. Una mayor cantidad de particiones permite que más consumidores lean en paralelo. Si los consumidores se están rezagando, aumente la cantidad de particiones para cumplir con la latencia de consumo esperada.