首页 理论教育 准备处理Flume数据源:实践经验分享

准备处理Flume数据源:实践经验分享

时间:2023-06-25 理论教育 版权反馈
【摘要】:Flume是由Cloudera公司开发的一款高性能、高可能的分布式日志收集系统。Flume的核心是把数据从数据源收集过来,再送到目的地。Flume是一个分布式的、可靠的、可以用于有效收集、聚合、移动海量日志数据的服务。Flume以Agent为最小的独立运行单位。图4.39 Flume Agent三大组件图Flume提供了大量内置的Source、Channel和Sink类型。

准备处理Flume数据源:实践经验分享

Flume是由Cloudera公司开发的一款高性能、高可能的分布式日志收集系统。Flume的核心是把数据从数据源收集过来,再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除自己缓存的数据。

初始的Flume版本是FlumeOG(Flume original generation),由Cloudera公司开发,叫做Cloudera Flume;后来Cloudera把Flume贡献给了Apache,版本改为FlumeNG(Flume next generation),现在称为Apache Flume。

注意:当前大部分高级数据源都没有提供针对Python API的访问接口,因此使用Python API时,先在官方网站上确认是否支持。

Flume是一个分布式的、可靠的、可以用于有效收集、聚合、移动海量日志数据的服务。Flume以Agent为最小的独立运行单位。单个Agent由Source、Sink和Channel三大组件构成,如图4.39所示。

978-7-111-51909-6-Chapter04-136.jpg

图4.39 Flume Agent三大组件图

Flume提供了大量内置的Source、Channel和Sink类型。不同类型的Source、Channel和Sink可以自由组合。组合方式基于用户设置的配置文件。

Agent的配置信息包括以下几部分:

1)Agent的Source信息,多个Source间空格分隔。(www.xing528.com)

2)Agent的Channel信息,多个Channel间空格分隔。

3)Agent的Sink信息,多个Sink间空格分隔。

4)各个Source与Channel的关联,多个Channel间空格分隔。

5)各个Sink与Channel的管理,多个Channel间空格分隔。

其中,Source作为数据来源,Channel作为Flume的数据缓存,Sink是各个数据接收端。指定关联关系后,数据就会从Source端开始收集数据,然后发送到关联的Channel上进行缓存,最后发送到与Channel的Sink上。

在基于Flume风格的推送数据方式,和定义Sink的拉取数据方式的案例实践与分析中,Sink的host:port设置要求不同,可以简单地用以下方法加强理解:

1)使用推送数据方式时,由Flume负责推送数据,因此需要知道推送的目的地“host:port”,所以对应的Sink设置的“host:port”就是我们集群中的某个worker节点地址

2)使用拉取数据方式时,原理同上,Spark Streaming应用从Flume侧拉取数据,因此需要知道Flume侧的“host:port”,所以对应定制的Sink设置的“host:port”是在Agent运行节点上。运行Spark Streaming时,输入该地址,就可以从该地址拉取数据了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈