我们的日志基本是从web服务中采集,那么flume有好的配置,接下来我将分别演示单台和多台聚合例子。
一、单台flum
对于实时的日志flume采集修改配置source为exec,sink目前测试只是模拟打印出来,对于真正的生产环境我们是可以配置成Hdfs或者kafka,分别用于以后离线计算以及实时流计算处理。对于sink发送至kafak我将在后面的内容中写出,至于配置文件位置和如何启动我就不说了,上一节内容已经说明,直接上配置即可:
如上标注的文件是我们生产环境日志文件即可,此处我们可以在自己的文件夹上创建一个该文件进行模拟,然后我们来说明下下exec的配置,直接把官网的说明列出就一目了然:
接下来启动flume,然后模拟输入命令,如下两个图分别是输入和flume打印出来的内容
2)、多台
应用场景说明:接下来要演示的是多台服务聚合的场景(看下图一幕了然),例如我们有两天web服务,我们分别配置了flume,但是这两天没有没有HDFS服务,我们如何把这两个服务保存到hdfs中?其实就是两天日志的通过配置sink,然后将日志发送到存在HDFS服务商flume服务中即可。
好了,接下来我们就来演示上图的这种环境,我将用两天测试,用一台接收web服务的日志然后发送到另外一台flume中即可:
第一台配置如下(接收web服务配置):注意我们的sink的type要配置成avro
第二台配置(接收flume的配置):注意我们的source的type要配置成avro
如上配置好启动即可,然后在第一台服务模拟数据,第二台的日志就会打印出来。此处与单台模拟操作相同就不在展示。
总结:flume的核心其实就是sources、Channels、sinks
配置的时候我们基本按照这四部走:1:配置source,2:配置Channel 3:配置Sink 4:把以上三个联系起来即可
如果我们忘记命令可以在flume中直接输入flume-ng即可查看如下图:
如何解决我们的数据从其他server移动到hadoop中?
1)、shell脚本cp到hadoop中 hdfs -put,但是太麻烦不能及时
2)、flume(比较好的选择)
Flume的概述:flume是具有分布式、高效可用的,收集、聚合大量的日志文件的框架,并且可靠、扩展性强
网友评论