需求说明
监控某个目录,若目录下产生了符合条件的文件,flume就抽取它到hdfs上,目录下可能有多种文件,比如当文件以log.tmp结尾时表示正在写。对log.tmp文件设置一个size值,一旦到达size,则会变成一个完整文件以.log结尾,则已经是完整文件(往往存在短暂),flume可以抽取其中数据, 以.log.completed结尾则表示flume已经抽取完数据,可以删除掉。
业务分析
从上述需求可知,我们是要监控某个日志目录,所以Flume Agent的Source选择【Sqooling Directory source】,这个source会监控spooling directory下的新文件,并且当新文件出现解析event,上传数据到目标地。当这个文件在channel中被完全读取后,便会被重命名表示完成。
本案例中Flume Agent不再使用前面所说的MemoryChannel,而是使用FileChannel,将Source获取的数据缓存到本地文件系统,要比MemoryChannel更加安全。
配置
-
agent
-
resoure
-
channels
+sink
-
bind source sink to channels
运行
-
只处理非log结尾的文件
-
hdfs系统的文件
网友评论