codecamp

阿帕奇水槽架构

下图说明了水槽的基本架构。正如图中所示, 数据生成器 (如Facebook,Twitter等)产生它获取通过在其上运行个人代理水槽收集到的数据。此后, 数据收集器 (这也是一个代理)收集从其中被聚合并推入集中存储诸如HDFS或HBase的药剂中的数据。

水槽架构

水槽事件

一个事件是内部水槽传送的数据的基本单元。它包含字节数组,它是对从源到伴随可选的头的目的地运送的有效负载。一个典型的水槽事件将具有以下结构 -

水槽事件

水槽代理

代理是一个独立的守护进程(JVM)的水槽。它接收来自客户或其他试剂中的数据(事件),并将其转发到其下一目的地(信宿或代理)。水槽可能有不止一家代理商。下图表示水槽代理

水槽代理

如在图中所示的水槽代理包含三个主要部件,即, 信道 ,和水槽

资源

是从数据生成器,并将其传送接收数据到一个或多个通道在水槽事件的形式代理的组件。

Apache的水槽支持多种类型的源和每个源从指定数据发生器接收事件。

示例 - Avro的来源,储蓄来源,Twitter的1%等。源

渠道

频道是接收来自光源的事件和缓冲他们,直到他们被消耗汇一过店。它充当源和汇之间的桥梁。

这些通道是完全事务,他们可以用任何数量的源和汇的工作。

示例 - JDBC通道,文件系统的通道,内存通道等。

水槽

一个上的数据存储到HBase的喜欢和HDFS集中存储。它消耗来自信道的数据(事件)并将其传送到目的地。接收器的目标可能是另一种试剂或中央商店。

示例 -沉HDFS

-水槽剂可以有多个源,汇和渠道。我们列出了所有受支持的源,汇渠道在本教程的水槽配置章节。

水槽代理其他组件

我们已经上面讨论是代理的原始的组件。除了这一点,我们有在事件从数据产生传送到所述集中存储发挥重要作用的几个更多的组件。

拦截器

拦截器用于改变/检查这些源和信道之间传送水槽事件。

通道选择器

这些被用来确定哪个信道要被选择到在多个信道的情况下传送数据。有两种类型的信道选择器 -

  • 缺省信道选择器 -这些也被称为复制通道选择他们复制在每个通道中的所有事件。

  • 复用信道选择器 -这些决定发送基于该事件的报头的地址的事件的通道。

沉处理器

这些用于从水槽的选定组调用特定水槽。这些都是用来为您的水槽或通过从通道多汇的负载平衡事件创建故障切换路径。


Apache的水槽数据传输在Hadoop中
Apache的水槽数据流
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }