您当前的位置: 首页 > 

梁云亮

暂无认证

  • 0浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Flume

梁云亮 发布时间:2019-11-12 19:42:28 ,浏览量:0

Flume Flume简介

Apache Flume是一个分布式,可靠且可用的海量日志采集、聚合和传输的系统。常用于有效地从许多不同的源收集,聚合和移动大量日志数据到集中式数据存储。

Flume 支持在日志系统中定制各类数据发送方,用于收集数据,同时,Flume 提供对数据进行简单处理,并写到各种数据接受方(比如文本、HDFS、Hbase等)的能力 。

Apache Flume 的使用不仅限于日志数据聚合。由于数据源是可定制的,因此 Flume 可用于传输大量事件数据,包括但不限于网络流量数据,社交媒体生成的数据,电子邮件消息以及几乎任何可能的数据源。

Flume的可靠性

当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume 的事件是通过 Agent 在 Channel 中进行的。然后将事件传递到流中的下一个 Agent 或终端存储库(如HDFS)。

只有将事件存储在下一个 Agent 的 Channel 或终端存储库中后,才会从 Channel 中删除这些事件。

这就是 Flume 中的单跳消息传递语义如何提供流的端到端可靠性。可确保事件在流中从一个点到另一个点可靠地传递。在多条流的情况下,来自前一条的 Sink 和来自下一条的 Source 都运行其事务以确保数据安全地存储在下一个的Channel 中。    Flume的可恢复性是靠Channel实现的。推荐使用 FileChannel ,事件持久化在本地文件系统里(性能较差)。 而内存通道,它只是将事件存储在内存中的队列中,虽然更快,但是当 Agent 进程死亡时仍然留在内存通道中的任何事件无法恢复。

Flume的一些核心概念
  • Agent:使用 JVM 运行 Flume。每台机器运行一个 Agent,但是可以在一个 Agent中包含多个 Sources 和 Sinks。
  • Client:生产数据,运行在一个独立的线程。
  • Source:从 Client 收集数据,传递给 Channel。
  • Sink:从Channel 收集数据,运行在一个独立线程。
  • Channel:连接 Sources 和 Sinks ,有点像一个队列。
  • Events 可以是日志记录、 avro 对象等。

Flume 的每个组件设置属性type,以了解它需要什么类型的对象。每个源,接收器和通道类型都有自己的一组属性,使其能够按预期运行。

Flume 以 Agent 为最小的独立运行单位。一个 Agent 就是一个 JVM。单 Agent 由 Source、Sink 和 Channel三大组件构成。

Flume 内置了大量的 Source、Channel 和 Sink 类型。不同类型的 Source, Channel 和 Sink 可以自由组合。组合方式基于用户设置的配置文件,非常灵活。比如:Channel 可以把事件暂存在内存里,也可以持久化到本地硬盘上。Sink 可以把日志写入HDFS, HBase,甚至是另外一个 Source 等等。Flume支持用户建立多级流,也就是说,多个agent可以协同工作。

Flume 的数据流由事件(Event)贯穿始终。事件是 Flume 的基本数据单位,它携带字节数组形式的日志数据,并且携带有头信息,这些 Event 由 Agent 外部的 Source 生成,当 Source 捕获事件后会进行特定的格式化,然后 Source 会把事件推入(单个或多个) Channel 中。可以把 Channel 看作是一个缓冲区,它将保存事件直到 Sink 处理完该事件。Sink 负责持久化日志或者把事件推向另一个 Source。

Hadoop业务的整体开发流程:

在这里插入图片描述 在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步。许多公司的平台每天会产生大量的日志。处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下特征:

  • 构建应用系统和分析系统的桥梁,并将它们之间的关联解耦;
  • 支持近实时的在线分析系统和类似于Hadoop的离线分析系统;
  • 具有高可扩展性。即:当数据量增加时,可以通过增加节点进行水平扩展。

开源的日志系统有scribe、chukwa、kafka、flume等。其中:Flume是Cloudera提供的一个分布式、可靠、高可用的海量日志聚合系统,它支持在日志系统中定制各类数据发送方,用于收集数据;同时Flume提供对数据的简单处理,并写到各种数据接收方(比如文本、HDFS、Hbase等)的能力。

Flume 在0.9.x and 1.x之间有较大的架构调整,1.x版本之后的改称Flume NG,0.9.x的称为Flume OG。

Flume是Apache的顶级项目,官方网站:http://flume.apache.org/

https://www.cnblogs.com/qingyunzong/p/8994494.html

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0501s