第二天: flume
1.关闭防火墙
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
2.术语:
源信息保存在namenode,NameNode为了数据同步,会通过JournalNode相互通信
SPOF 单点故障
HA 高可用性
NN namenode
DN datanode
3.Flume核心概念:
Event数据单元,由header和byte array组成
Client把log打包成Event发给Agent
Agent
1)Source接收数据放到channel里
2)Channel缓存event,可以是文件或内存
3)Sink 发送Event,成功后从channel移除
4.Source监听:
spooldir:监听目录中文件变化,不检测内容,只支持文本
taildir:检测文件内容变化,只支持文本
exec:执行命令,将结果作为数据源
avro:监听端口,收集数据
等。。
5.实战:利用flume检测目录,并写入hdfs
首先,自己写个属性文件myflume.properties,放到flume的conf目录下
#Agent名字MyAgent
MyAgent.sources = mysource
MyAgent.channels = mychannel
MyAgent.sinks = mysink
#监听目录变化
MyAgent.sources.mysource.type = spooldir
#监听/tmp/logs目录文件变化
MyAgent.sources.mysource.channels = mychannel
MyAgent.sources.mysource.spoolDir =/tmp/logs
#一定注意这里的mysink跟上面是对应的
MyAgent.sinks.mysink.channel = mychannel
MyAgent.sinks.mysink.type = hdfs
MyAgent.sinks.mysink.hdfs.path = hdfs://master:8020/data/logs/%Y%m%d/%H/
MyAgent.sinks.mysink.hdfs.batchSize = 1000
MyAgent.sinks.mysink.hdfs.rollSize = 0
MyAgent.sinks.mysink.hdfs.rollCount = 10000
MyAgent.sinks.mysink.hdfs.useLocalTimeStamp = true
#这里的mychannel跟上面是对应的
MyAgent.channels.mychannel.type = memory
MyAgent.channels.mychannel.capacity = 10000
MyAgent.channels.mychannel.transactionCapacity = 100
启动flume(注意文件名和MyAgent名字):
bin/flume-ng agent -n MyAgent -c conf -f \ 注:\是换行符,不需要换行的删除
conf/myflume.properties -Dflume.root.logger=DEBUG,console
6.如果收集网络数据,更改sources配置项
MyAgent.sources.mysource.type = avro
MyAgent.sources.mysource.channels = mychannel
MyAgent.sources.mysource.spoolDir =/tmp/logs
阅读(984) | 评论(0) | 转发(0) |