flume实验(数据采集与预处理课程,皆是本机操作)

avro 类型  固定的日志文件内容

spooling 类型  固定的日志目录的新增文件内容

exec 类型 自定义的、实时的(采集新增加的),去重的采集固定的日志文件的内容

syslog 类型 利用 tcp、udp通信协议,采集端自动采集端口日志 5140

netcat 类型 也是利用tcp、udp通信协议,自定义端口

avro端口,只接收来来自外部avro客户端的事件流(avro序列化后的数据)

监听固定的日志文件的内容

avro监听和收集指定端口的日志,使用avro的source需要说明被监听的主机ip和端口号

  channels: 接收客户数据源事件流的通道

  type: Avro,

  bind: 监听的主机名(master)或ip

  port: 监听的端口

# avro.conf
# 第一步:命名
a1.sources=r1
a1.sinks=k1
a1.channels=c1

# 第二步:设置各个类型属性
# source属性
a1.sources.r1.type=Avro
a1.sources.r1.bind=master
a1.sources.r1.port=4141

# channel属性
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100

# sink属性
a1.sinks.k1.type=logger

# 第三步:关联
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1

服务端 

        flume-ng agent -n a1 -c conf -f /app/flumeconf/avro_mem_logger.conf -Dflume.root.logger=INFO,console

客户端

        flume-ng avro-client -c conf -H master -p 4141 -F /app/flume-1.8.0/flumedata/log.00

spooling-directory 对一个目录进行监控,新增一个文件就将文件的内容进行传输监控

允许将要收集的数据放置到指定的“搜集目录”中

监视该目录,并解析新出现的文件,(文件不能修改,重名)

  type:  spooldir

  spooldir: 指定搜索目录

  fileHeader: 指定采集过程中将数据源保存成文件来提高容错

  inputCharset: GBK 传输编码类型

  .COMPLETED: 对处理完成的文件追加的后缀

# spool.conf

# 命名agent a2的组件
a2.sources=r2
a2.channels=c2
a2.sinks=k2

# 描述/配置source
a2.sources.r2.type=spooldir
a2.sources.r2.spoolDir=/app/spool
a2.sources.r2.fileHeader=true
a2.sources.r2.inputCharset=GBK

# 描述/配置sink
a2.sinks.k2.type=logger

# 描述/配置channel
a2.channels.c2.type=memory
a2.channels.c2.capacity=1000
a2.channels.c2.transactionCapacity=100

# 连接sources和sinks到channels
a2.sources.r2.channels=c2
a2.sinks.k2.channel=c2

服务端

        flume-ng agent -n a2 -c conf -f /app/flumeconf/spool.conf -Dflume.root.logger=INFO,console  .

exec 可以实现 实时的、高可靠的采集,利用exec来之定义日志采集

  type: exec

  command: tail -F /app/flume-1.8.0/flumedata/exec_log.01

# exec.conf

# 命名agent组件
a3.sources=r3
a3.sinks=k3
a3.channels=c3

# 描述/配置source
a3.sources.r3.type=exec
a3.sources.r3.command=tail -F /app/flume-1.8.0/flumedata/exec_log.01

# 描述/配置sink
a3.sinks.k3.type=logger

# 内存channel配置
a3.channels.c3.type=memory
a3.channels.c3.capacity=1000
a3.cahnnels.c3.transactionCapacity=100

# 绑定sources和sinks到channel
a3.sources.r3.channels=c3
a3.sinks.k3.channel=c3

  服务端

        flume-ng agent -n a3 -c conf -f /app/flumeconf/exec_tail.conf -Dflume.root.logger=INFO,console

客户端

        将数据写入 exec_log.01文件即可

syslog 通过syslog协议读取系统日志,分为tcp和udp两种,使用时需指定ip和端口(5140)

  type: Syslogtcp

  port: 5140

  host: localhost等主机名或ip

  

# 命名agent a4的组件
a4.sources=r4
a4.sinks=k4
a4.channels=c4

# 描述/配置sources
a4.sources.r4.type=Syslogtcp
a4.sources.r4.port=5140
a4.sources.r4.host=localhost

# 描述/配置内存sink
a4.sinks.k4.type=logger

# 描述/配置内存channel
a4.channels.c4.type=memory
a4.channels.c4.capacity=1000
a4.channels.c4.transactionCapacity=100

# 绑定source和sinks到channel
a4.sources.r4.channels=c4
a4.sinks.k4.channel=c4

服务端

        flume-ng agent -n a4 -c conf -f /app/flumeconf/syslog_tcp.conf -Dflume.root.logger=INFO,console

客户端

        利用 netcat 通信 (tcp协议)进行数据传输

        连接 服务端 nc localhost 5140   后 进行操作输入内容 服务端就可以接收到对应内容

netcat 利用tcp协议进行通信 自定义连接端口,

  type: netcat

  port: 端口号

  bind: 主机名或ip

  

# Name the components on this agent
a5.sources=r5
a5.sinks=k5
a5.channels=c5

# 配置source
a5.sources.r5.type=netcat
a5.sources.r5.bind=localhost
a5.sources.r5.port=44444

# 配置sink
a5.sinks.k5.type=logger

# 配置channel
a5.channels.c5.type=memory
a5.channels.c5.capacity=1000
a5.channels.c5.transactionCapacity=100

# 连接sink source和channel
a5.sources.r5.channels=c5
a5.sinks.k5.channel=c5

服务端

        flume-ng agent -n a5 -c conf -f /app/flumeconf/net_flume_logger.conf -Dflume.root.logger=INFO,console

客户端

        连接对应的主机端口,进行通信

         nc localhost 44444

 

你可能感兴趣的:(flume)