Introducción y análisis de parámetros de cada canal de Flume
Los tipos de canales comunes incluyen canales de memoria, canales de archivos, canales Kafka, etc.
En comparación con los canales, los canales de memoria son más rápidos, pero almacenan menos datos y los datos pueden perderse cuando el proceso Flume se bloquea, el servidor falla o se reinicia. Puede utilizar Flume Agent si el servidor en línea donde lo implementa tiene suficientes recursos de memoria y no le preocupa la pérdida de datos.
Escribe eventos en archivos de disco, que tienen una mayor capacidad de almacenamiento que los canales de memoria y no hay riesgo de pérdida de datos. Las rutas de almacenamiento de datos del canal de archivos se pueden configurar como rutas de archivos de disco múltiples para mejorar el rendimiento del canal de archivos mediante escrituras en disco paralelas. Flume escribe eventos secuencialmente hasta el final del archivo del canal de archivos y configura el tamaño del archivo de datos estableciendo el parámetro maxFileSize en el archivo de configuración. Cuando el tamaño del archivo escrito alcance el límite superior, Flume recreará un nuevo archivo para almacenar los eventos escritos. Flume establece puntos de control y puntos de control de respaldo para que los datos en el canal de archivos puedan volver a colocarse en la memoria de manera rápida y ordenada después de que se reinicie el Agente, garantizando así que los servicios se puedan entregar de manera rápida y segura después de que falle el reinicio del Agente.
Kafka es un sistema distribuido distribuido, escalable, tolerante a fallas y de alto rendimiento que aprovecha al máximo las características secuenciales del disco a través de un excelente diseño arquitectónico para lograr mensajes eficientes en hardware económico.
Debido a limitaciones de memoria, el canal de memoria no puede almacenar en caché una gran cantidad de mensajes. Si los mensajes en el canal de memoria no se escriben en el receptor a tiempo, la falla del agente provocará la pérdida de datos. Los canales Kafka pueden almacenar en caché más mensajes, pero si los mensajes almacenados en caché no se han escrito en el receptor y el Agente falla, los mensajes en el canal de archivos no se pueden usar hasta que el Agente se recupere y luego los mensajes en el canal de archivos se pueden reutilizar. En comparación con los canales de memoria y los canales de archivos, los canales de Kafka tienen mayor capacidad de almacenamiento y tolerancia a fallas, lo que compensa las deficiencias de los otros dos canales. Si puede hacer un uso razonable del rendimiento de Kafka, puede lograr el doble de resultado con la mitad de esfuerzo. .
Al utilizar el canal Kafka, puede configurar solo el componente de origen y el componente del canal Kafka en la capa de recopilación de registros sin configurar el componente receptor. Esto puede reducir la cantidad de procesos iniciados en la capa de recopilación de registros y reducirlos de manera efectiva. La memoria del servidor, el uso de recursos como discos y la capa de agregación de registros solo pueden configurar Kafka Channel y Sink sin configurar el componente Sink. Sink no requiere la configuración de Source, lo que reduce la cantidad de procesos en la capa de agregación de registros. Esta configuración puede reducir la utilización de recursos del servidor y reducir la transmisión de eventos entre redes, mejorando efectivamente el rendimiento del sistema de recopilación de registros.
Las operaciones relacionadas con el canal Kafka se definen en la clase KafkaChannel del paquete org.apache.flume.channel.kafka
Los valores predeterminados de los parámetros relacionados con Kafka se definen en org. .apache.kafka.clients En la clase .KafkaChannel. Definido en KafkaChannel-Configuration en el paquete CommonClientConfigs.
Los parámetros de configuración generales de Kafka tienen el prefijo "kafka". p>
Los parámetros de configuración predeterminados en KafkaChannelConfiguration de origen se definen de la siguiente manera:
Nota: nombre_agente no está configurado con Origen, solo se configuran Canal y Sumidero, y el tipo de canal utilizado es Canal Kafka. El nombre del tema es "test_channel", la identificación del grupo de consumidores es "test-consumer", el tipo de receptor es generación continua de archivos hdfs y el canal conectado es KafkaChannel nombre_canal.