Flume之agent基本配置使用

Flume之agent基本配置使用

一、agent组成

agent由source、channel、sink三部分组成

source:数据源头,主要负责接收数据,将数据转换成事件,交由channel进行缓冲拦截处理,一般有netcat、实时日志收集(exec)、批量监控、序列source、压力source,还有avro source等等

channel:中间缓冲拦截处理机制,主要有内存通道,文件通道,内存溢出通道等等

sink:数据输出机制,对抓取的channel通道缓存的事件进行拉取,并且进行下一步存放或者跃点操作,跃点相当于从当前的agent传递给下一个agent,sink一般包含hive sink,hbase sink,hdfs sink等等

更多详细信息请查看Flume官方文档

二、demo测试配置文件编辑

准备数据源为netcat,通道为内存通道,sink为hdfs sink

在flume/bin下新建一个nc_memory_hdfs.conf文件,编辑内容:

# 这里的agent名称定义为agent,其他名称同理
agent.sources = r1
agent.channels = c1
agent.sinks = k1

# sources
# 定义资源类型为nc,绑定主机为localhost,暴露端口为9999
agent.sources.r1.type=netcat
agent.sources.r1.bind=localhost
agent.sources.r1.port=9999


# sink
# 这里的hdfs.path为hdfs文件路径,启动flume之前需要在hdfs文件系统上新建/usr/centos/flume/sinkData
# hdfs dfs -mkdir ....
agent.sinks.k1.type = hdfs
agent.sinks.k1.hdfs.path=/usr/centos/flume/sinkData/%y-%m-%d/%H/%M/%S
agent.sinks.k1.hdfs.filePrefix=events-
agent.sinks.k1.hdfs.round = true
# 每20秒钟创建一次文件夹(有源头数据来的情况下才创建,没有数据过来不会创建)
agent.sinks.k1.hdfs.roundValue = 20
agent.sinks.k1.hdfs.roundUnit=second
# 每十秒钟在当前文件夹下创建一个文件(同样需要有源数据过来)
agent.sinks.k1.hdfs.rollInterval=10
agent.sinks.k1.hdfs.rollSize=1024
agent.sinks.k1.hdfs.rollCount=10
agent.sinks.k1.hdfs.useLocalTimeStamp=true

# channels
agent.channels.c1.type=memory

# bind_all
agent.sources.r1.channels=c1
agent.sinks.k1.channel=c1

三、执行启动flume

flume-ng agent -f ./conf/nc_memory_hdfs.conf -n agent

该指令在flume的安装目下执行的,在任何路径都可以执行,只要对应编辑的配置文件的路径就行
-f :对应配置文件的路径
-n:对应配置文件中agent的名称

四、客户端连接服务产生源数据

nc localhost 9999
这里ip和端口需要对应配置文件中source的bind和port的值
成功连接后编辑任意测试内容进行回车,然后查看hdfs文件系统产生的sink输出数据,数据为二进制数据
使用:hdfs dfs -lsr /usr/centos/sinkData列出产生文件目录结构,使用-text指令可以查看产生的文件内容

Flume之agent基本配置使用_第1张图片

后续会持续更新大数据组件相关demo,欢迎私信讨论

你可能感兴趣的:(Flume)