Apache Flume – Configuración

Después de instalar Flume, necesitamos configurarlo usando un archivo de configuración, que es un archivo de propiedades de Java que tiene pares clave-valor… Necesitamos pasar valores a las claves en el archivo.

En el archivo de configuración de Flume, necesitamos:

  • Nombra los componentes del agente actual.
  • Describe / personaliza la fuente.
  • Describe / personaliza tu fregadero.
  • Describe / personaliza el canal.
  • Vincula la fuente y el sumidero al canal.

Flume suele tener varios agentes. Podemos distinguir a cada agente por un nombre único. Y usando ese nombre, tenemos que personalizar cada agente.

Denominación de componentes

En primer lugar, debe nombrar / enumerar los componentes, como fuentes, receptores y canales de agentes, como se muestra a continuación.

agent_name.sources = source_name 
agent_name.sinks = sink_name 
agent_name.channels = channel_name 

Flume admite una variedad de fuentes, receptores y canales. Se enumeran en la siguiente tabla.

Fuentes canales Fregaderos
  • Fuente Avro
  • Fuente de ahorro
  • Código fuente ejecutivo
  • Fuente JMS
  • Fuente de directorio de almacenamiento en búfer
  • Fuente de manguera de incendios de Twitter 1%
  • Fuente de Kafka
  • Fuente NetCat
  • Fuente del generador de secuencia
  • Fuentes de Syslog
  • Fuente TCP de Syslog
  • Fuente de Syslog TCP multipuerto
  • Fuente UDP Syslog
  • Fuente HTTP
  • Fuente de estrés
  • Fuentes de patrimonio
  • La fuente de un legado Lean
  • Fuente personalizada
  • Escriba fuente
  • Canal de memoria
  • Canal JDBC
  • Canal de Kafka
  • Canal de archivos
  • Canal de memoria derramado
  • Canal de pseudo transacción
  • Fregadero HDFS
  • Concha de colmena
  • Fregadero del registrador
  • Fregadero Avro
  • Fregadero económico
  • Receptor de IRC
  • Carcasa de rollo de archivo
  • Fregadero vacío
  • HBaseSink
  • AsyncHBaseSink
  • MorphlineSolarSink
  • ElasticSearchSink
  • Fregadero para conjunto de datos de cometas
  • Fregadero de Kafka

Puede utilizar cualquiera de ellos. Por ejemplo, si está transmitiendo datos de Twitter utilizando una fuente de Twitter a través de un canal de memoria a un receptor HDFS y la identificación del nombre del agente TwitterAgententonces

TwitterAgent.sources = Twitter 
TwitterAgent.channels = MemChannel 
TwitterAgent.sinks = HDFS 

Después de enumerar los componentes del agente, debe describir la (s) fuente (s), sumidero (s) y canal (s) especificando sus valores de propiedad.

Descripción de la fuente

Cada fuente tendrá una lista separada de propiedades. Una propiedad llamada «tipo» es común a cada fuente y se usa para indicar el tipo de fuente que estamos usando.

Junto con la propiedad «tipo», debe especificar los valores de todos requerido propiedades de una fuente específica para personalizarla como se muestra a continuación.

agent_name.sources. source_name.type = value 
agent_name.sources. source_name.property2 = value 
agent_name.sources. source_name.property3 = value 

Por ejemplo, si consideramos fuente en twitter, las siguientes propiedades, a las que deber proporcionar valores para configurarlo.

TwitterAgent.sources.Twitter.type = Twitter (type name) 
TwitterAgent.sources.Twitter.consumerKey =  
TwitterAgent.sources.Twitter.consumerSecret = 
TwitterAgent.sources.Twitter.accessToken =   
TwitterAgent.sources.Twitter.accessTokenSecret = 

Descripción del fregadero

Como la fuente, cada destino tendrá una lista separada de propiedades. Una propiedad denominada «tipo» es común a cada fregadero y se utiliza para indicar el tipo de fregadero a utilizar. Junto con la propiedad «tipo», debe especificar valores para todos requerido propiedades específicas del receptor para configurarlo como se muestra a continuación.

agent_name.sinks. sink_name.type = value 
agent_name.sinks. sink_name.property2 = value 
agent_name.sinks. sink_name.property3 = value

Por ejemplo, si consideramos Fregadero HDFS, las siguientes propiedades, a las que deber proporcionar valores para configurarlo.

TwitterAgent.sinks.HDFS.type = hdfs (type name)  
TwitterAgent.sinks.HDFS.hdfs.path = HDFS directory’s Path to store the data

descripción del canal

Flume proporciona varios canales para transmitir datos entre fuentes y receptores. Por lo tanto, junto con las fuentes y los canales, es necesario describir el canal utilizado en el agente.

Para describir cada canal, debe establecer las propiedades necesarias como se muestra a continuación.

agent_name.channels.channel_name.type = value 
agent_name.channels.channel_name. property2 = value 
agent_name.channels.channel_name. property3 = value 

Por ejemplo, si consideramos canal de memoria, las siguientes propiedades, a las que deber proporcionar valores para configurarlo.

TwitterAgent.channels.MemChannel.type = memory (type name)

Vincular una fuente y un sumidero a un canal

Dado que los canales conectan fuentes y receptores, debe vincular ambos a un canal como se muestra a continuación.

agent_name.sources.source_name.channels = channel_name 
agent_name.sinks.sink_name.channels = channel_name 

El siguiente ejemplo muestra cómo vincular fuentes y receptores a un canal. Aquí consideramos Fuente de Twitter, canal de memoria, y Fregadero HDFS

TwitterAgent.sources.Twitter.channels = MemChannel
TwitterAgent.sinks.HDFS.channels = MemChannel 

Lanzamiento del agente Flume

Después de la configuración, debemos iniciar el agente Flume. Esto se hace de la siguiente manera:

$ bin/flume-ng agent --conf./conf/ -f conf/twitter.conf 
Dflume.root.logger=DEBUG,console -n TwitterAgent 

dónde –

  • agente – Comando para ejecutar el agente Flume

  • –conf, -c – Use el archivo de configuración en el directorio conf

  • -F <файл> – Indica la ruta al archivo de configuración, si falta

  • –nombre, -n <имя> – Nombre del agente de Twitter

  • -D propiedad = valor : Establece el valor de una propiedad del sistema Java.

🚫