Agent组件

一、source

1.Avro Source

  1. 监听Avro 端口来接收外部avro客户端的事件流
  2. avro-source接收到的是经过avro序列化后的数据,然后反序列化数据继续传输。
  3. 源数据必须是经过avro序列化后的数据
  4. 利用Avro source可以实现多级流动、扇出流、扇入流等效果
  5. 可以接收通过flume提供的avro客户端发送的日志信息
  6. 配置说明

    配置项

    说明

    channels

    绑定通道

    type

    avro

    bind

    需要监听的主机名或IP

    port

    要监听的端口

    threads

    工作线程最大线程数

    selector.*

    选择器配置

    interceptors.*

    拦截器配置

2.Spooling Directory Source

  1. 监听一个指定的目录,只要牡蛎下的文件发生变化,会自动收集文件中的内容
  2. flume会持续监听指定的目录,把放入这个目录中的文件当做source来处理
  3. 注意:一旦文件被放到“自动收集”目录中后,便不能修改,如果修改,flume会报错
  4. 此外,也不能有重名的文件,如果有,flume也会报错
  5. 配置说明

配置项

说明

channels

绑定通道

type

spooldir

spoolDir

读取文件的路径,即"搜集目录"

selector.*

选择器配置

interceptors.*        

拦截器配置

 

3.HTTP Source

  1. 此Source接受HTTP的GET和POST请求作为Flume的事件
  2. GET方式只用于试验,所以实际使用过程中以POST请求居多
  3. 如果想让flume正确解析Http协议信息,比如解析出请求头、请求体等信息,需要提供一个可插拔的"处理器"来将请求转换为事件对象,这个处理器必须实现HTTPSourceHandler接口。
  4. 这个处理器接受一个 HttpServletRequest对象,并返回一个Flume Envent对象集合
  5. 配置说明

    配置项

    说明

    channels

    绑定的通道

    type        

    http

    selector.*

    选择器配置

    interceptors.*

    拦截器配置

    port

    端口

二、channel

1.Memory Channel

  1. 事件将被存储在内存中(指定大小的队列里)
  2. 非常适合那些需要高吞吐量且允许数据丢失的场景下
  3. 配置说明

配置项

说明

type

memory

capacity

100        事件存储在信道中的最大数量

建议实际工作调节:10万
首先估算出每个event的大小,然后再服务的内存来调节

transactionCapacity

100        每个事务中的最大事件数

建议实际工作调节:1000~3000

 

2.File Channel

  1. 将数据临时存储到计算机的磁盘的文件中
  2. 性能比较低,但是即使程序出错数据不会丢失
  3. 配置说明

配置项

说明

type

file

dataDirs

指定存放的目录,逗号分隔的目录列表,用以存放日志文件。使用单独的磁盘上的多个目录可以提高文件通道效率。

 

三、sink

1.Logger Sink

  1. 记录指定级别(比如INFO,DEBUG,ERROR等)的日志,通常用于调试
  2. 要求,在 --conf(-c )参数指定的目录下有log4j的配置文件
  3. 根据设计,logger sink将body内容限制为16字节,从而避免屏幕充斥着过多的内容。如果想要查看调试的完整内容,那么你应该使用其他的sink,也许可以使用file_roll sink,它会将日志写到本地文件系统中
  4. 配置说明

配置项

说明

channel

绑定通道

type

logger

 

2.HDFS Sink

  1. 此Sink将事件写入到Hadoop分布式文件系统HDFS中
  2. 目前它支持创建文本文件和序列化文件,并且对这两种格式都支持压缩
  3. 这些文件可以分卷,按照指定的时间或数据量或事件的数量为基础
  4. 它还通过类似时间戳或机器属性对数据进行 buckets/partitions 操作
  5. HDFS的目录路径可以包含将要由HDFS替换格式的转移序列用以生成存储事件的目录/文件名
  6. 使用这个Sink要求haddop必须已经安装好,以便Flume可以通过hadoop提供的jar包与HDFS进行通信
  7. 配置说明

配置项

说明

channel

绑定的通道

type

hdfs

hdfs.path

HDFS 目录路径 (hdfs://namenode地址/flume/webdata/)

hdfs.inUseSuffix

.tmp        Flume正在处理的文件所加的后缀

hdfs.rollInterval

文件生成的间隔事件,默认是30,单位是秒

hdfs.rollSize

生成的文件大小,默认是1024个字节 ,0表示不开启此项

hdfs.rollCount

每写几条数据就生成一个新文件,默认数量为10

每写几条数据就生成一个新文件,

hdfs.fileType

SequenceFile/DataStream/CompressedStream

hdfs.retryInterval

80        Time in seconds between consecutive attempts to close a file. Each close call costs multiple RPC round-trips to the Namenode, so setting this too low can cause a lot of load on the name node. If set to 0 or less, the sink will not attempt to close the file if the first attempt fails, and may leave the file open or with a ”.tmp” extension.

 

3.Avro Sink

  1. 将源数据进行利用avro进行序列化之后写到指定的节点上
  2. 是实现多级流动、扇出流(1到多) 扇入流(多到1) 的基础
  3. 配置说明

配置项

说明

channel

绑定的通道

type

 avro

hostname

要发送的主机

port

要发往的端口号

 

你可能感兴趣的:(Agent组件)