Apache Flume教程

资料来源:Apache Flume - Introduction (tutorialspoint.com)

Flume是一个标准的、简单的、健壮的、灵活的、可扩展的工具,用于将从各种数据生产者(web服务器)中所产生的数据抽取到Hadoop中。在本教程中,我们将使用简单的说明性示例来解释Apache Flume的基础知识以及如何在实践中使用它。

1. Flume-简介

什么是Flume?

Apache Flume是一个工具/服务/数据抽取机制,用于从不同的数据来源收集和传输大量的流数据(如日志文件、事件等)到一个集中的数据存储。

Flume是一个高度可靠、分布式和可配置的工具。它主要用于从各种web服务器,将流数据(日志数据)传输到HDFS中。

下图1-1是Flume作用示例图:

图1-1 Flume作用示例图


Flume的应用场景

假设电子商务web应用程序想要分析来自特定地区的客户行为。为此,他们需要将可用的日志数据移到Hadoop(HDFS)中进行分析。在这此场景,Apache Flume就可以解决这个日志数据移动工作。

Flume用于将应用服务器生成的日志数据以更高的速度移动到HDFS中。


Flume的优点

下面是使用Flume的优点

  • 使用Apache Flume,我们可以将数据存储到任何集中式存储(HBase, HDFS)中。
  • 当传入数据的速率超过可写入目标数据的速率时,Flume充当数据生产者和集中式存储之间的中介,并在它们之间提供稳定的数据流。
  • Flume提供了上下文路由(contextual routing)的特性。
  • Flume中的事务是基于通道的,其中为每个消息维护两个事务(一个发送方和一个接收方)。它保证可靠的消息传递。
  • Flume是可靠的、容错的、可扩展的、易于管理的和可个性化定制的。

Flume的特点

以下是Flume的一些显著特点:

  • Flume将来自多个web服务器的日志数据高效地抽取到一个集中存储(HDFS、HBase)中。
  • 使用Flume,我们可以将来自多个服务器的数据及时地导入Hadoop。
  • 除了日志文件,Flume还用于导入Facebook和Twitter等社交网站以及亚马逊和Flipkart等电子商务网站产生的大量事件数据。
  • Flume支持大量的源和目标类型。
  • Flume支持多跳流(multi-hop)、扇入扇(fan-in fan-out)出流、上下文路由等。
  • Flume可以水平扩展