Flume de preguntas comunes de entrevistas de big data

1. Composición y asuntos de Flume

Flume se compone de una transacción de sumidero del canal de origen, incluida la transacción de colocación, la transacción de toma, el
canal de origen de uso común

  • taildir source : transmisión reanudable con puntos de interrupción, varios directorios. Antes de flume1.6, debe personalizar la fuente para registrar la ubicación del archivo cada vez que lea el archivo para lograr una transmisión reanudable.
  • canal de archivos : los datos se almacenan en el disco y los datos del tiempo de inactividad se pueden guardar. Pero la velocidad de transmisión es lenta. Es adecuado para escenarios que requieren una alta confiabilidad de transmisión de datos, como la industria financiera
  • canal de memoria : los datos se almacenan en la memoria y los datos se pierden durante el tiempo de inactividad. La velocidad de transmisión es rápida. Es adecuado para escenarios que no requieren una alta confiabilidad de transmisión de datos, como los datos de registro ordinarios
  • Canal Kafka: reduzca la fase de sumidero del canal y mejore la eficiencia de transmisión
    source 到 channel是put事务 channel 到 sink 是take事务

二 canal .kafka

  • El canal de memoria tiene un gran riesgo de pérdida de datos y la capacidad es promedio. Aunque el canal de archivos puede almacenar más mensajes en caché, si los mensajes en caché no se han escrito en el receptor, en este momento el agente falla, los mensajes en el canal de archivos no se pueden cambiar. Continúe usándolo y sepa que el agente está restaurado. El canal Kafka tiene una gran capacidad y una fuerte tolerancia a fallas
  • Con el canal kafka, solo el componente de origen y el componente kafka se pueden configurar en la capa de recopilación de registros, sin la necesidad de configurar el componente receptor, lo que reduce el número de procesos iniciados por la capa de recopilación de registros y reduce efectivamente la tasa de utilización de la memoria del servidor, el disco y otros recursos.
  • En cuanto a la capa de agregación de registros, solo puede configurar el canal y el receptor de Kafka, y no es necesario configurar el origen.

Tres. Fregadero de canalón de uso común

  • ** Disipador de 1.hdfs: ** Escribe eventos en el almacenamiento de archivos hdfs, que puede almacenar de manera efectiva grandes cantidades de datos durante mucho tiempo
  • 2.kafka sink: Flume escribe eventos en temas en kafka a través de kafka sink, y otras aplicaciones consumen datos al suscribirse a temas. Kafak.producer.acks puede configurar el productor para enviar mensajes al corredor sin esperar a que el corredor regrese entregado correctamente señal
  • 0 significa que el productor no necesita esperar a que el corredor devuelva una señal de entrega exitosa después de enviar el mensaje al corredor. Este método tiene un alto rendimiento, pero existe el riesgo de pérdida de datos.
  • 1 significa que el corredor devuelve una señal de recepción exitosa al productor después de recibir el mensaje escrito con éxito en el archivo de registro local, y no necesita esperar a que todos los seguidores sincronicen el mensaje antes de responder. Este método equilibra el riesgo de pérdida de datos y rendimiento.
  • -1 significa que el corredor recibe el mensaje del productor y lo escribe con éxito en el registro local y espera a que todos los seguidores escriban correctamente el registro local y luego devuelve una señal de recepción exitosa al productor. Este método puede garantizar que el mensaje no se pierda, pero el rendimiento es el peor

Interceptor de Four.flume

  • Antes de que la fuente escriba el evento en el canal, el interceptor se puede utilizar para procesar el evento en varias formas. Puede haber varios interceptores entre la fuente y el canal. Los diferentes interceptores utilizan diferentes reglas para procesar el evento, incluido el tiempo, el host, UUID, Varias formas de interceptores como expresiones regulares
  • Generalmente usa interceptores personalizados en desarrollo

Selector de Five.flume

  • La fuente se envía al evento a través del selector de canal para elegir de qué manera escribir en el canal. Flume proporciona tres tipos de selectores de canal, que son copia, reutilización y selectores personalizados.
  • Selector de copia: una fuente escribe un evento en varios canales al mismo tiempo mediante la copia. Diferentes receptores pueden obtener el mismo evento de diferentes canales. Por ejemplo, los datos de un registro se escriben en kafka y hdfs al mismo tiempo, y un evento se escribe al mismo tiempo. Escriba en dos canales y luego envíe diferentes tipos de sumideros a diferentes dispositivos de almacenamiento externo
  • Selector de multiplexación: debe usarse junto con el interceptor para determinar en qué canal se debe escribir el evento de acuerdo con los diferentes datos de valor clave en la información del encabezado del evento

Equilibrio de carga y conmutación por error de Six.flume

  • El propósito es mejorar la tolerancia a fallas y la estabilidad de todo el sistema. Se puede lograr fácilmente una configuración simple. En primer lugar, debe configurar un grupo de receptores. Hay varios receptores en el mismo grupo de receptores y se pueden configurar distintos receptores para el equilibrio de carga o la conmutación por error.

7. Cómo realizar el monitoreo de transmisión de datos de canal

  • Utilice el marco de trabajo de terceros Ganglia para monitorear el canal en tiempo real
  • Este método de monitoreo necesita instalar los ganglios primero, luego iniciar los ganglios y luego agregar la configuración de monitoreo al iniciar el canal, de la siguiente manera:
    flume-ng agent -c conf -f conf/producer.properties -n agent -Dflume.monitoring.type=ganglia -Dflume.monitoring.hosts=localhost:88888
  • Zabbix también se puede utilizar para el monitoreo de canales, pero este método requiere agregar un módulo de monitoreo al código fuente del canal, lo cual es relativamente problemático. Debido a los métodos de monitoreo propios de muchos canales, este método no se trata aquí.
  • Por lo tanto, los métodos de monitorización propios de flume son en realidad http y ganglia. Solo se puede acceder a la monitorización HTTP a través de una dirección http para obtener datos de monitorización en formato json, y la monitorización de ganglios consiste en obtener estos datos y mostrarlos en la interfaz. Más intuitivo

Supongo que te gusta

Origin blog.csdn.net/sun_0128/article/details/108063042
Recomendado
Clasificación