水槽简介架构

  

2019/2/22星期五

  

水槽简介架构

  

<强>水槽的官方网站在哪里?
http://flume.apache.org/
http://www.apache.org/dyn/closer.cgi/flume/1.5.0/apache-flume-1.5.0-bin.tar.gz

  

<强>数据采集工具水槽介绍
<强>一、什么是水槽吗?
水槽作为cloudera开发的实时日志收集系统,受到了业界的认可与广泛应用.Flume初始的发行版本目前被统称为水槽OG(代),属于cloudera。但随着水槽功能的扩展,水槽OG代码工程臃肿,核心组件设计不合理,核心配置不标准等缺点暴露出来,尤其是在水槽OG的最后一个发行版本0.94.0中、日志传输不稳定的现象尤为严重,为了解决这些问题,
2011年10月22号,cloudera完成了水槽- 728,对水槽进行了里程碑式的改动:重构核心组件,核心配置以及代码架构,重构后的版本统称为水槽NG(新一代);改动的另一原因是将水槽纳入apache旗下,cloudera水槽改名为apache水槽。

  

<强>水槽的特点:
水槽是一个分布式、可靠,和高可用的海量日志采集,聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,水槽提供对数据进行简单处理,并写到各种数据接受方(比如文本,HDFS, Hbase等)的能力。

  

水槽的数据流由事件(事件)贯穿始终。//这个水槽处理的数据流就是一个事件整个过程
事件(事件)是水槽的基本数据单位,它携带日志数据(字节数组形式)并且携带有头信息,这些事件由代理外部的源生成,当源捕获事件后会进行特定的格式化,然后源会把事件推入(单个或多个)通道中。你可以把频道看作是一个缓冲区,它将保存事件直到水槽处理完该事件.Sink负责持久化日志或者把事件推向另一个源

  

<强>水槽的可靠性
当节点出现故障时,日志能够被传送到其他节点上而不会丢失.Flume提供了三种级别的可靠性保障,从强到弱依次分别为端到端(收到数据代理首先将事件写到磁盘上,当数据传送成功后,再删除,如果数据发送失败,可以重新发送),
存储alt="水槽简介架构">

  

值得注意的是,水槽提供了大量内置的来源、渠道和水槽类型。不同类型的来源、渠道和水槽可以自由组合。组合方式基于用户设置的配置文件,非常灵活,比如:
通道可以把事件暂存在内存里,也可以持久化到本地硬盘上。
水槽可以把日志写入HDFS, HBase,甚至是另外一个源等等。
水槽支持用户建立多级流,也就是说,多个代理可以协同工作,并且支持,扇入扇出,上下文路由、备份线路,这也正是NB之处。//多级流是一个特点如下图所示:
水槽简介架构

  

<强>水槽优点小结:
1。存储数据到任何中央数据库
2。进入数据速率大于写出速率,可以起到缓存作用,保证流的平稳。
3。提供文本式路由
4。支持事务。
5。可靠,容错,可伸缩,可定制,可管理

  

<强>高级组件解释:
(拦截器):拦截器,在源和频道监控数据。
[通道选择器):在多通道情况下,采用哪个通道来传递数据。有两种类型通道选择器
。默认频道选择器:
在通道中复制每个事件。
b。多路复用通道选择器:
通过判断事件的头信息,决定通道来发送事件。
[水槽处理器]:沉槽处理器,从沉组中选择一个特定的沉进行调用。可以水池为创建容灾路径或者在多个水槽之间实现负责均衡。
(收集器):在代理后方运行。
(种):多级跳转,从沉到代理
[输出]:从一个源到频道
[输入]:从多个源到一个频道。

  

<强> 3大组件的详细解释:(源通道接收)

来源是数据的收集端,负责将数据捕获后进行特殊的格式化,将数据封装到事件(事件)里,然后将事件推入通道中。
水槽提供了各种来源的实现,包括Avro来源,超重的来源,假脱机目录源,NetCat来源,Syslog来源,Syslog TCP源,Syslog UDP来源,HTTP来源,HDFS源,等。如果内置的无源法满足需要,水槽还支持自定义。
//详细解释如下//先详细笔记中的案例分析
(1) Avro来源:Avro可以发送一个给定的文件给水槽,Avro源使用Avro RPC机制。//用的多
(2)假脱机目录来源:线轴监测配置的目录下新增的文件,并将文件中的数据读取出来。需要注意两点:
1)拷贝到线轴目录下的文件不可以再打开编辑。
2)线轴目录下不可包含相应的子目录
(3)过量来源:EXEC执行一个给定的命令获得输出的源,如果要使用尾巴命令,必选使得文件足够大才能看到输出内容

水槽简介架构