研读《基于Hadoop的海量业务数据分析平台的设计与实现》----flume的数据收集系统的设计

数据收集系统是基于应用服务器日志的数据收集系统,其目标就是实现数据的收集,预处理,分析进而展示的过程。使用各种产品进行数据展示的过程。在分布式的系统当中,日志中的同一服务器可能会记录多种多样的日志,同一个日志会记录在不同的服务器上。对于flume方式,每一台服务器上面会记录多种多样的日志,对于同一个APP1,会为其配置多个接收数据的agent来接收不同类型的日志文件。对于APP1和APP2中产生同种日志,每个服务器上有单独的agent接收以后会聚合到一个新的agent,最后把数据统一的传输到HDFS上面。其中流程如下图所示。



flume方式是指把实时的数据写入HDFS中,我们把flume做为数据传输的通道,flume需要创建自己的agent,支持LOG4J的写入的source只有avro source ,我们采用HDFS分布式文件系统做为数据存储系统,所以采用 HDFS  sink ,为了保证数据的安全性,我们使用file channel的方式。做为数据传输的通道。


如何才能配置agent了,需要配置哪些参数呢?


如上图的 配置做一些解释:

这里配置一个叫做agent-1的agent,包括avro source ,需要配置它的几个属性,type,bind和port,type表示的是source的类型即 avro source ,bind表示他监听的主机名或者IP,port表示监听的端口,bind和port加起来就是监听的应用服务器。

channel采用的是file-channel方式,file-channel可以保证数据在传输过程中的一致性,file--channel必须定义一个type属性,当有多个agent使用file agent做为数据传输的通道时,需要手动的checkpointdir 和datadirs ,其中checkpointdir 保存检查点的路劲,datadirs保存数据文件的路劲,默认会有一个路劲,但是当有多个agent的时候,只有一个能够初始化,其他的初始化失败。

Sink采用的是HDFS sink ,把数据最终保存在HDFS系统中,需要配置type属性为hdfs,其中path属性为HDFS的文件保存路径,round表示文件的滚动属性,上面配置的是24小时进行滚动一次,也就是说24小时产生一个新文件。需要经过多个agent传输数据,前一个agent的Sink做为后一个agent的source的写入端,多个Agentm都是通过avro sink和avro source进行数据传输的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章