Flume快速入门(一):背景简介

       Flume由Cloudera于2009年7月开源,后变成Apache的顶级项目之一,由Java语言开发,致力于解决大量日志流数据的迁移问题。日志是大数据分析领域的主要数据来源之一,如何将线上成百上千的业务系统日志高效、可靠的迁移到我们的hdfs中去,Flume提供了一个很好的解决方案。Flume——一个纯粹为流式数据迁移而生的分布式服务。

       现如今,几乎所有开源的成熟的解决方案都说自己是分布式的,可能大家对分布式的概念逐渐弱化了,我们这里先来小小的回顾一下分布式的概念,在软件设计领域,分布式概念的出现是为了解决集中式的中心单点和难以维护、扩展性差等问题,在采用分布式的软件设计时,一个业务由多个业务模块来协助完成,各个业务模块之间通过网络来通讯,分布式软件系统在设计时需要充分考虑到业务的解耦和功能的可扩展性,分布式避免了单点的问题,提供了更稳定的系统服务,但分布式系统同时提升了软件系统的复杂度(包括考虑到模块之间通信接口的制订、网络的不可靠规避等),并对系统运维有了更高的要求。分布式系统说白了就是建立在网络通信上的系统,那分布式和集群有什么区别呢?我们也经常说集群部署,集群中的所有服务器完成的功能是一致的,所以集群中的服务器都是等价的,集群部署解决的是业务处理吞吐量不够的问题,我部署更多的服务器,这样就能使同时处理的更多业务,从而增加服务提供能力。而在分布式系统中,部署的各个业务模块功能是不相同的,比如分布式系统中有订单模块、用户模块、交易模块和营销模块等,但为了保证各个业务模块的可靠性和服务输出能力,每个模块都需要集群部署。

       扯远了,现在回到Flume的话题上来,写本文时,Flume的最新版本是1.6.0,其实,Flume发发展经历了两代(Generation),第一代指0.9.x版本,现在叫做Flume OG,即Flume老的一代,Flume OG中依赖了ZooKeeper,所以采用的是主从的设计,如下图:

但从1.x版本开始,Flume去掉了ZooKeeper的依赖,变成了一种更纯粹流数据传输工具,即第二代Flume NG,如下图:

 

Agent component diagram

关于OG和NG的差别,大家可以在网上和Flume官网查询资料对比,本文针对的是Flume NG。

       Flume是一种Java服务,需要单独部署。Flume的具体设计,下章继续。下一篇:http://manzhizhen.iteye.com/blog/2298159

 

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值