Flume的简单了解:

**1.flume 是分布式的日志收集系统,把收集来的数据传送到目的地去。
2。flume里面有个核心概念,叫做agent。agent是一个java进程,运行在日志收集节点。
3。agent里面包含3个组件:source, channel, sink**
*3.1 source组件是专用于(收集日志),可以处理各种类型各种格式的日志数据,包括 avro, thrift, exec, jms, spooling directory, netcat, sequence generator, syslog, http, legacy, 自定义等。
Source组件把数据收集来以后,临时存放在channel中
3.2 Channel组件是在agent中专用于临时存储数据的,可以存放在memory, jdbc,file,自定义。
channel中的数据只有在sink发送成功后才会被删除。
3.3 sink组件是用于把数据发送到目的的组件,目的地包括: hdfs, logger, avro, thrift, ipc, file, null, hbase, solr,自定义。*

**4。 在整个数据传输过程中,流动的是event。事物保证是在event级别。
5。flume 可以支持多级flume的agent, 支持善如(fan- in), 扇出(fan-out)**.

扇入:是指直接调用该模块的上级模块的个数。扇入大表示模块的复用成都高。
扇出: 是指该模块直接调用的下级模块的个数。扇出大表示模块的复杂程度高,需要控制和
协调过多的下级模块; 但是扇出过小(例如总是1)也不好。扇出过大一般是因为缺乏中间层次,
应该适当增加中间层次的模块。扇出太小可以把下级模块进一步分解成若干个子功能模块,或者
合并到它的上级模块中。
设计良好的软件结构: 通过顶层的扇出比较大,中间的扇入小,底层模块则有大扇入。

6。书写配置文件的example:

agent1 表示代理名称

agent1.sources = source1
agent1.sinks = sink1
agent1.channels = channel1

Spooling Directory 是监控指定文件夹中新文件的变化,一旦以文件出现,就解析文件内容,然后写入到channel,写入完成后,标记该文件已完成或者删除该文件。

配置source1

agent1.sources.source1.type=spooldir
agent1.sources.source1.spoolDir = /home/light/flumeTest
agent1.sources.source1.channel=channel1
agent1.source.source1.fileHeader=false
agent1.sources.source1.interceptors=il
agent1.sources.source1.interceptors.il.type=timestamp

配置sink1

agent1.sinks.sink1.type=hdfs
agent1.sinks.sink1.hdfs.path=hdfs://hadoop0:9000/flumeTest
agent1.sinks.sink1.hdfs.fileType=DataStream
agent1.sinks.sink1.hdfs.writeFormat=TEXT
agent1.sinks.sink1.hdfs.rollInterval=10
agent1.sinks.sink1.channel=channel1
agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d

配置channel1

agent1.channels.channel1.type=file
agent1.channels.channel1.checkpointFir=/home/zkpk/flume_tmp/123
agent1.channels.channel1.dataDirs=/home/zkpk/flume_tmp/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值