flume由clouder公司开发并且开源。flume是一个分布式可靠的进行数据收集,聚合,移动的框架,他进行数据的实时收集。flume架构简单灵活,由java编写,只能够支持linux操作系统。
flume分布式架构:
每个服务器上都有日志,再每个服务器安装flume客户端
flume日志收集架构:
Flume只有一个角色的节点,agent角色,agent由source,channel,sink组成。
source从webserver中获取数据,将获取的数据封装成Event,将Event放再channel中,sink从channel中拉取数据。
channel能够链接多个source,但是只能够链接一个sink。
Event是flume数据传输的基本单元。
flume以Event的形式将数据从数据源传输到目的地。
Event由可选的header和载有数据的byte array构成。载有数据的flume是不透明的。header是容纳了key-value的无序集合,key再集合中是唯一的。header可以再上下文路由中使用扩展(比如数据的清洗)。
source,cnannel,sink,event间的关系
source将enevt推送给channel,sink从channel中拉取数据。
数据仓库架构