【Spark Streaming】日志收集框架Flume的学习

日志收集框架Flume
概览

Apache Flume是一个分布式,可靠且可用的系统,用于有效地收集,聚合大量日志数据并将其从许多不同的源移动到集中式数据存储中。Apache Flume的使用不仅限于日志数据聚合。由于数据源是可定制的,因此Flume可用于传输大量事件数据,包括但不限于网络流量数据,社交媒体生成的数据,电子邮件消息以及几乎所有可能的数据源。

数据流模型

Flume事件定义为具有字节有效负载和可选字符串属性集的数据流单位。Flume代理是一个(JVM)进程,承载了组件,事件通过这些组件从外部源流到下一个目标(hop)。

在这里插入图片描述

Flume源使用由外部源(如Web服务器)传递给它的事件。外部源以目标Flume源可以识别的格式将事件发送到Flume。当Flume源收到事件时,它将事件存储到一个或多个通道中。通道是被动存储,可保留事件直到被Flume Sink消耗掉为止。接收器从通道中删除事件,并将其放入HDFS之类的外部存储库(通过Flume HDFS接收器),或将其转发到流中下一个Flume代理(下一跳)的Flume源。给定代理中的源和接收器与通道中上演的事件异步运行。

Flume允许用户建立多跳流程,其中事件在到达最终目的地之前会通过多个代理传播。即下一个Source的源可能是上一个sink的输出

设置代理Agent

Flume代理配置存储在本地配置文件中。这是遵循Java属性文件格式的文本文件。可以在同一配置文件中指定一个或多个代理的配置。配置文件包括代理中每个源,接收器和通道的属性,以及它们如何连接在一起以形成数据流。

设置单个组件

流中的每个组件(源,接收器或通道)都有一个名称,类型和特定于该类型和实例化的属性集。例如,Avro源需要一个主机名(或IP地址)和一个接收数据的端口号。一个内存通道可以具有最大队列大小(“容量”),并且HDFS接收器需要知道文件系统URI,创建文件的路径,文件旋转的频率(“ hdfs.rollInterval”)等。组件的所有此类属性都需要在托管Flume代理的属性文件中设置。

核心组件

  • Source 收集
  • Channel 聚集
  • Sink 输出
Flume Source
  • Avro source

    侦听Avro端口并从外部Avro客户端流接收事件。与另一个(以前的跃点)Flume代理上的内置Avro Sink配对时,它可以创建分层的集合拓扑

  • Thrift source

    监听Thrift端口并接收来自外部Thrift客户端流的事件。与另一个(以前的跃点)Flume代理上的内置ThriftSink配对时,它可以创建分层的集合拓扑。可通过启用kerberos身份验证将节俭源配置为以安全模式启动。 agent-principal和agent-keytab是Thrift源用来验证kerberos KDC的属性

  • Exec source

    Exec源代码在启动时运行给定的Unix命令,并期望该过程在标准输出上连续产生数据(除非将属性logStdErr设置为true,否则将直接丢弃stderr)。如果该过程由于某种原因而退出,则源也将退出,并且将不再产生任何数据。这意味着诸如cat [命名管道]或tail -F [file]之类的配置将产生期望的结果,而日期可能不会-前两个命令产生数据流,而后者则产生单个事件并退出。

  • JMS Source

    JMS源从JMS目的地(如队列或主题)读取消息。作为一个JMS应用程序,它应该可以与任何JMS提供者一起工作,但是只在ActiveMQ中测试过

  • Kafka source

    Kafka Source是Apache Kafka使用者,可从Kafka主题读取消息。如果您有多个运行的Kafka源,则可以

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值