上午实现的是一个监控一个动态的文件,上传到hdfs,这个动态的文件就是hive的日志文件。
之前监控的动态的文件时一行一行的读取数据,效率比较低。
现在的实例就是:
现在有个文件夹,每天往里面放新文件,整个文件放进去。这个文件放进去之后就不会改变了。之前的tail -F也可以,再写一个正则表达式,文件的格式统一就可以,但是时一行一行读取的,效率很低。我们就要用到另外一个source—spooldir source
现在的source不再是之前的netcat或者exec了
他们不能一次性把文件上传。类似于put
但是put是执行一次上传一个,对于flume来说,一直监控这个目录,只要有新文件了,就把它上传,并不是,某个新文件里面有新内容了把它上传。注意区别。
所以:
三大组件使用:
spooldir source
HDFS sink
memory channel
监控的目录是upload
开启监控之后,往upload里面仍一些数据的时候,在做测试:
往已存在的文件中追加内容呢?
雪球总结:
1本地有个文件夹upload
2写一个flume的配置文件
3启动agent
4往upload里面放数据
5去hdfs里面看上传的结果
准备写source,去看官网
文件的后缀:我上传了一个文件的时候,就给他的后缀写成COMPLETED,这杨flume就知道,就不会再上传了
白名单-黑名单
如果文件格式和我正则匹配,就上传
如果不匹配就不上传。