使用Flume NG构建数据收集系统(第一部分 Flume介绍) 转载
转载自:uploadfile/jiaocheng/201401104/2808/2014012816085513047
?好文章,留下备忘。
?
?
Flume是什么
?
收集、聚合事件流数据的分布式框架通常用于log数据采用ad-hoc方案,明显优点如下:可靠的、可伸缩、可管理、可定制、高性能声明式配置,可以动态更新配置提供上下文路由功能支持负载均衡和故障转移功能丰富完全的可扩展核心概念
EventClientAgentSources、Channels、Sinks其他组件:Interceptors、Channel Selectors、Sink Processor核心概念:Event
Event是Flume数据传输的基本单元。flume以事件的形式将数据从源头传送到最终的目的。Event由可选的hearders和载有数据的一个byte array构成。
?
载有的数据对flume是不透明的Headers是容纳了key-value字符串对的无序集合,key在集合内是唯一的。Headers可以在上下文路由中使用扩展?
?
? ? ? ? ? ? ? ?
?
可靠性基于:Agent间事务的交换Flow中,Channel的持久特性可用性:内建的Load balancing支持内建的Failover支持?
核心概念:Interceptor
?
用于Source的一组Interceptor,按照预设的顺序在必要地方装饰和过滤events。
?
内建的Interceptors允许增加event的headers比如:时间戳、主机名、静态标记等等定制的interceptors可以通过内省event payload(读取原始日志),在必要的地方创建一个特定的headers。核心概念:Channel Selector
Channel Selector允许Source基于预设的标准,从所有Channel中,选择一个或多个Channel
?
内建的Channel Selectors:复制Replicating: event被复制到相关的channel复用Multiplexing: 基于hearder,event被路由到特定的channel?
核心概念:Sink Processor?
多个Sink可以构成一个Sink Group。一个Sink Processor负责从一个指定的Sink Group中激活一个Sink。Sink Processor可以通过组中所有Sink实现负载均衡;也可以在一个Sink失败时转移到另一个。
?
Flume通过Sink Processor实现负载均衡(Load Balancing)和故障转移(failover)内建的Sink Processors:Load Balancing Sink Processor – 使用RANDOM, ROUND_ROBIN或定制的选择算法Failover Sink Processor?Default Sink Processor(单Sink)所有的Sink都是采取轮询(polling)的方式从Channel上获取events。这个动作是通过Sink Runner激活的Sink Processor充当Sink的一个代理?
总结?