Apache Flume – 序列生成器源

Apache Flume – 序列生成器源


在上一章中,我们已经看到了如何从 twitter 源中获取数据到 HDFS。本章解释了如何从Sequence generator获取数据

先决条件

要运行本章提供的示例,您需要安装HDFSFlume因此,在继续之前,请验证 Hadoop 安装并启动 HDFS。(请参阅上一章了解如何启动 HDFS)。

配置水槽

我们必须使用conf文件夹中的配置文件来配置源、通道和接收器本章中给出的示例使用了一个序列生成器源、一个内存通道和一个HDFS 接收器

序列发生器源

它是连续生成事件的源。它维护一个从 0 开始递增 1 的计数器。它用于测试目的。在配置此源时,您必须为以下属性提供值 –

  • 频道

  • 源类型– seq

渠道

我们正在使用内存通道。要配置内存通道,您必须为通道类型提供一个值。下面给出了配置内存通道时需要提供的属性列表 –

  • type – 它保存通道的类型。在我们的示例中,类型是 MemChannel。

  • 容量– 它是存储在通道中的最大事件数。其默认值为 100。(可选)

  • TransactionCapacity – 它是通道接受或发送的最大事件数。它的默认值为 100。(可选)。

HDFS接收器

此接收器将数据写入 HDFS。要配置此接收器,您必须提供以下详细信息。

  • 渠道

  • 类型– hdfs

  • hdfs.path – HDFS 中要存储数据的目录的路径。

并且我们可以根据场景提供一些可选值。下面给出了我们在应用程序中配置的 HDFS 接收器的可选属性。

  • fileType – 这是我们的 HDFS 文件所需的文件格式。SequenceFile、DataStreamCompressedStream是此流可用的三种类型。在我们的示例中,我们使用的是DataStream

  • writeFormat – 可以是文本或可写。

  • batchSize – 它是在将文件刷新到 HDFS 之前写入文件的事件数。其默认值为 100。

  • rollsize – 这是触发滚动的文件大小。它的默认值为 100。

  • rollCount – 它是在滚动之前写入文件的事件数。其默认值为 10。

示例 – 配置文件

下面给出了一个配置文件的例子。复制这个内容,在Flume的conf文件夹中保存为seq_gen .conf

# Naming the components on the current agent 

SeqGenAgent.sources = SeqSource   
SeqGenAgent.channels = MemChannel 
SeqGenAgent.sinks = HDFS 
 
# Describing/Configuring the source 
SeqGenAgent.sources.SeqSource.type = seq
  
# Describing/Configuring the sink
SeqGenAgent.sinks.HDFS.type = hdfs 
SeqGenAgent.sinks.HDFS.hdfs.path = hdfs://localhost:9000/user/Hadoop/seqgen_data/
SeqGenAgent.sinks.HDFS.hdfs.filePrefix = log 
SeqGenAgent.sinks.HDFS.hdfs.rollInterval = 0
SeqGenAgent.sinks.HDFS.hdfs.rollCount = 10000
SeqGenAgent.sinks.HDFS.hdfs.fileType = DataStream 
 
# Describing/Configuring the channel 
SeqGenAgent.channels.MemChannel.type = memory 
SeqGenAgent.channels.MemChannel.capacity = 1000 
SeqGenAgent.channels.MemChannel.transactionCapacity = 100 
 
# Binding the source and sink to the channel 
SeqGenAgent.sources.SeqSource.channels = MemChannel
SeqGenAgent.sinks.HDFS.channel = MemChannel 

执行

浏览 Flume 主目录并执行如下所示的应用程序。

$ cd $FLUME_HOME 
$./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/seq_gen.conf 
   --name SeqGenAgent 

如果一切顺利,源开始生成序列号,这些序列号将以日志文件的形式推送到 HDFS。

下面给出的是将序列生成器生成的数据提取到 HDFS 的命令提示符窗口的快照。

生成的数据

验证 HDFS

您可以使用以下 URL 访问 Hadoop 管理 Web UI –

http://localhost:50070/

单击页面右侧名为Utilities的下拉菜单您可以看到两个选项,如下图所示。

验证 HDFS

单击Browse the file system并输入存储序列生成器生成的数据的 HDFS 目录的路径。

在我们的示例中,路径将是/user/Hadoop/ seqgen_data /然后,您可以看到序列生成器生成的日志文件列表,存储在 HDFS 中,如下所示。

浏览文件系统

验证文件的内容

所有这些日志文件都包含顺序格式的数字。您可以使用cat命令验证文件系统中这些文件的内容,如下所示。

验证文件的内容

觉得文章有用?

点个广告表达一下你的爱意吧 !😁