您的位置:首页 > 其它

flume用户手册

2015-01-07 10:30 239 查看
架构

数据流模型

Event被定义为数据流的最小单元,数据流包括一个字节有效载荷和一组可选择的字符串属性。Flume agent进程是包括一些组件,通过这些组件event能从外部source流向下个目的地。

Flume agent消费外部source转发给他的event,比如webserver。外部source发送目标flumesource能识别格式的event到flume。比如,Avro flume source能从avro client或者其他flume的avro sink接收avro event。类似的流程有使用thrift flume source从thrift sink或者thrift RPC client或者flume thrift
协议生成的任何语言写的thrift client。当一个flume source接收了一个event,把它存入一个或者多个channel中。channel是被动的存储模块,他会存储event直到被flume sink消费掉。file channel是个例子,它把event存在本机文件系统。sink从channel删除event然后将它存入外部的存储模块如HDFS(通过flume HDFS sink)或转发他到下个flume agent的source。同一个flume agent里面的source和sink是异步运行伴随着event保存在channel中。

可靠性

这些event被存储在每个agent的channel中。Event被转发至下一个agent或者外部终端存储系统比如HDFS。当只有event被存入下一个agent的channel或者外部终端存储系统时才会在原来的channel中删除。这展示了flume如何保证单跳场景中端到端的消息传递的可靠性。

可恢复性

         保存在channel中的events若传输失败可恢复。Flume支持filechannel存储模式,这样event能存储在本地文件系统中。还有一种memory channel,把event存储在内存队列中,这种模式读写速度更快。但是一旦进程挂了,保存在memory channel的event会丢失不可恢复。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  flume