Flume应用场景及用法有哪些

42次阅读
没有评论

共计 1316 个字符,预计需要花费 4 分钟才能阅读完成。

本篇内容主要讲解“Flume 应用场景及用法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“Flume 应用场景及用法有哪些”吧!

Flume 简介

 Flume 是一个分布式的、高可用的海量日志采集系统。它支持对日志数据的发送方、接收方进行定义,可将多种来源的日志数据写到指定的接收方,如:文本、HDFS、Hbase 等。
  我认为 Flume 最让我称赞的就是,可以在不干涉已有系统运行的情况下,无侵入地对采集到该系统的日志信息。

 Flume 的数据流由 event(事件)贯穿始终,event 是 Flume 的基本数据单位,它携带日志数据(字节数组形式)和头信息,这些 event 由 Agent 外部的 Source 生成。当 Source 捕获到事先设定的事件(这里的事件,是指广义上的事件),就会生成 event 并推送到单个或多个 Channel 中。你可以把 Channel 看作是一个缓冲区,它保存 event 直到 Sink 对其处理完毕。Sink 负责处理 event,它对日志进行持久化或把 event 转给另一个 Source。

 Flume 以 agent 为最小的独立运行单位,每台机器运行一个 agent,一个 agent 由 Source、Sink 和 Channel 三大组件构成,如下图:

Client 生产数据,运行在一个独立的线程,比如我们的应用系统。

Source 从 Client 收集数据,传递给 Channel。

Sink 从 Channel 收集数据,运行在一个独立线程。

Channel 连接 sources 和 sinks,这个有点像一个队列。

Events 可以是日志记录、avro 对象等。

  一个 agent 中包含多个 sources 和 sinks:

应用场景及用法

sources.type = netcat
 Flume 可以监听到某台计算机(Client)接收到其它计算机发来的 netcat、telnet 消息,然后将这些消息传送到指定的地方,如 hdfs、HBase、Kafka 等。

sources.type = exec
 Flume 可以监听到某台计算机(Client)某个指令的执行,然后把指令执行产生的输出信息发送到指定的地方,如 hdfs、HBase、Kafka。如设定:
sources.command = tail -F /app/xxx.log
  那么每当有 10 条新的日志产生后,Flume 就把这 10 条新日志传送到指定的地方,如 hdfs、HBase、Kafka 等。

sources.type = spooldir
 Flume 可以监听到某台计算机(Client)上某个目录文件的变化,当有新的日志文件产生时,Flume 就把这个日志文件的内容传送到指定的地方,如 hdfs、HBase、Kafka 等。

sources.type = http

sources.type = syslogtcp
 Flume 可以监听到某台计算机(Client)TCP 的端口,把从端口接收到的消息传送到指定的地方,如 hdfs、HBase、Kafka 等。

到此,相信大家对“Flume 应用场景及用法有哪些”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计1316字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)