任06_Flume案例_官方案例(配置)

任06_Flume案例_官方案例(配置)
监听端口数据使用:netcat source-瑞士军刀,短小精悍。
打印到控制台:Logger sink
任06_Flume案例_官方案例(配置)
任06_Flume案例_官方案例(配置)
从官网上去复制:
任06_Flume案例_官方案例(配置)
任06_Flume案例_官方案例(配置)
任06_Flume案例_官方案例(配置)
第一步:安装netcat,装一台机器就行了
任06_Flume案例_官方案例(配置)
netcat简称nc
可以开启一个服务端和客户端,实现服务端和客户端通信
开启一个服务端:
任06_Flume案例_官方案例(配置)
开启客户端:
任06_Flume案例_官方案例(配置)
在客户端103上发送hello
任06_Flume案例_官方案例(配置)
任06_Flume案例_官方案例(配置)
此时服务端ctrl+C ,把服务端挂掉
任06_Flume案例_官方案例(配置)
那么客户端自己会挂掉
任06_Flume案例_官方案例(配置)
以上是实现网络通信使用端口的例子。
任06_Flume案例_官方案例(配置)
任06_Flume案例_官方案例(配置)
任06_Flume案例_官方案例(配置)
读取端口数据(netcat),经过flume到logger sink
任06_Flume案例_官方案例(配置)
需要配置的东西是source–channle–sink
任06_Flume案例_官方案例(配置)
任06_Flume案例_官方案例(配置)
任06_Flume案例_官方案例(配置)

添加内容如下:
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# Describe the sink
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

这里面的配置分为五个部分
第一部分:命名组件。
任06_Flume案例_官方案例(配置)

这三内容都加了s,说明
source,sink和channel都可以有多个
任06_Flume案例_官方案例(配置)
其实source也可以有多个
任06_Flume案例_官方案例(配置)
a1代表的是agent
如果在102上想开多个agent,agent的名字必须唯一,多个的话一定要不一样。

第二部分:
任06_Flume案例_官方案例(配置)
netcat是监听端口号,绑定的主机和端口号必须告诉我。
任06_Flume案例_官方案例(配置)
第三部分:sink
任06_Flume案例_官方案例(配置)
任06_Flume案例_官方案例(配置)
sink的类型是一个logger
第四部分:channel
任06_Flume案例_官方案例(配置)
任06_Flume案例_官方案例(配置)
channel的类型是memory channel
capacity:容量,作为一个缓冲必须有个大小,这里设置的是1000个事件(event)
transactionCapcity: 事务容量,一次只能传输多少个事件
transactionCapcity肯定要 < capacity

第五部分:做一个绑定,绑定source,sink到channel上
任06_Flume案例_官方案例(配置)
任06_Flume案例_官方案例(配置)

由于source ,channel和sink都可以有多个,都放在一个agent里面
任06_Flume案例_官方案例(配置)
这样也可以:
任06_Flume案例_官方案例(配置)
任06_Flume案例_官方案例(配置)
一个有s,一个没有s:
任06_Flume案例_官方案例(配置)
sink不能是多对一(多个channel对一个sink)
source可以将数据写到多个channel(有副本机制),也可以为了负载均衡实现一对一
但是sink和channel绑定不一样,一个channel可以绑定多个sink,但是sink只能绑定一个channel
任06_Flume案例_官方案例(配置)
比如这样是可以的,k2这个sink绑定了channel1,k1这个sink也绑定了channel1
任06_Flume案例_官方案例(配置)
任06_Flume案例_官方案例(配置)
这就是最后的配置文件

启动flume:
到flume的根目录
任06_Flume案例_官方案例(配置)
bin/flume-ng agent --conf conf/ --name a1 --conf-file job/flume-netcat-logger.conf -Dflume.root.logger=INFO,console
任06_Flume案例_官方案例(配置)
任06_Flume案例_官方案例(配置)
info级别的数据打印到console控制台上去
任06_Flume案例_官方案例(配置)

上一篇:2021-04-12


下一篇:22.Flume监控、自定义组件、面试题