flume自学文档.pdf

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
flume自学文档

Flume-ng Flume-ng FFlluummee--nngg的原理和使用 1. 介绍1 2. 架构2 2.1 数据流2 2.2 核心组件4 2.2.1 source4 2.2.2 Channel5 2.2.3 sink6 2.3 可靠性6 2.4 可恢复性7 3. 安装和使用7 4. 开发相关10 4.1 自定义source11 4.2 自定义sink13 4.3 自定义拦截器17 4.4 其他说明17 5. 参考文档17 1. 1. 介绍 11.. Flume 是 Cloudera 提供的日志收集系统,具有分布式、高可靠、 高可用性等特点,对海量日志采集、聚合和传输,Flume 支持在日志 系统中定制各类数据发送方,同时,Flume提供对数据进行简单处理, 并写到各种数据接受方的能力。 Flume 使用 java 编写,其需要运行在 Java1.6 或更高版本之上。 官方网站:/ 用户文档:/FlumeUserGuide.html 开发文档:/FlumeDeveloperGuide.html 2. 2. 22.. 架构 2.1 数据流 2.1 数据流 22..11 数数据据流流 Flume 的核心是把数据从数据源收集过来,再送到目的地。为了 保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正 到达目的地后,删除自己缓存的数据。 Flume 传输的数据的基本单位是 Event,如果是文本文件,通常 是一行记录,这也是事务的基本单位。Event 从 Source,流向 Channel,再到 Sink,本身为一个 byte 数组,并可携带 headers 信 息。Event 代表着一个数据流的最小完整单元,从外部数据源来,向 外部的目的地去。 Flume 运行的核心是 Agent。它是一个完整的数据收集工具,含 有三个核心组件,分别是 source、channel、sink。通过这些组件, Event 可以从一个地方流向另一个地方,如下图所示。 source 可以接收外部源发送过来的数据。不同的 source,可以 接受不同的数据格式。比如有目录池(spooling directory)数据源, 可以监控指定文件夹中的新文件变化,如果目录中有文件产生,就会 立刻读取其内容。 channel 是一个存储地,接收 source 的输出,直到有 sink 消 费掉 channel 中的数据。channel 中的数据直到进入到下一个 channel中或者进入终端才会被删除。当 sink 写入失败后,可以自 动重启,不会造成数据丢失,因此很可靠。 sink 会消费 channel 中的数据,然后送给外部源或者其他 source。如数据可以写入到 HDFS 或者 HBase 中。 flume 允许多个 agent 连在一起,形成前后相连的多级跳。 2.2 核心组件 2.2 核心组件 22..22 核核心心组组件件 2.2.1source 2.2.1source 22..22..11ssoouurrccee Client端操作消费数据的来源,Flume 支持 Avro,log4j,syslog 和 httppost(body为json格式)。可以让应用程序同已有的Source 直接打交道,如 AvroSource,SyslogTcpSource。也可以写一个 Source,以 IPC(进程间通信协议) 或 RPC(远程进程间通信协议) 的 方式接入自己的应用,Avro 和 Thrift 都可以(分别有 NettyAvroRpcClient 和 ThriftRpcClient 实现了 RpcClient 接 口),其中 Avro 是默认的 RPC 协议。具体代码级别的 Client 端数 据接入,可以参考官方手册。 对现有程序改动最小的使用方式是使用是直接读取程序原来记录 的日志文件,基本可以实现无缝接入,不需要对现有程序进行任何改 动。 对于直接读取文件 Source,有两种方式: ExecSource: 以运行 Linux 命令的方式,持续的输出最新的数 据,

您可能关注的文档

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档