Flume 序列生成器
在上一章中,我们已经看到了如何从 Twitter 源获取数据到 HDFS。本章解释了如何从
序列生成器获取数据。
先决条件
要运行本章提供的示例,您需要安装
HDFS 和
Flume。因此,在继续之前,请验证 Hadoop 安装并启动 HDFS。 (请参阅上一章了解如何启动 HDFS)。
配置Flume
我们必须使用
conf 文件夹中的配置文件来配置源、通道和接收器。本章中给出的示例使用一个
序列生成器源、一个
内存通道和一个
HDFS接收器。
序列生成器源
它是持续生成事件的源。它维护一个从 0 开始递增 1 的计数器。它用于测试目的。在配置此源时,您必须为以下属性提供值-
Channels
Source type-seq
Channel
我们正在使用
内存通道。要配置内存通道,您
必须为通道类型提供一个值。下面给出了配置内存通道时需要提供的属性列表-
type-它保存通道的类型。在我们的示例中,类型为 MemChannel。
Capacity-它是存储在通道中的最大事件数。其默认值为 100。(可选)
TransactionCapacity-它是通道接受或发送的最大事件数。其默认值为 100。(可选)。
HDFS 接收器
此接收器将数据写入 HDFS。要配置此接收器,您
必须提供以下详细信息。
Channel
type-hdfs
hdfs.path-HDFS 中要存储数据的目录路径。
并且我们可以根据场景提供一些可选值。下面给出的是 H 的可选属性我们在应用程序中配置的 DFS 接收器。
fileType-这是我们的 HDFS 文件所需的文件格式。 SequenceFile、DataStream 和 CompressedStream 是此流可用的三种类型。在我们的示例中,我们使用 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-
点击页面右侧名为
Utilities 的下拉菜单。您可以看到如下图所示的两个选项。
点击
浏览文件系统,输入序列生成器生成的数据所在的HDFS目录路径。
在我们的示例中,路径为
/user/Hadoop/seqgen_data/。然后,您可以看到序列生成器生成的日志文件列表,存储在 HDFS 中,如下所示。
验证文件内容
所有这些日志文件都包含顺序格式的数字。您可以使用
cat 命令验证文件系统中这些文件的内容,如下所示。
