Apache的水槽序列发生器源
在前面的章节中,我们看到了如何从Twitter源数据提取到HDFS。本章介绍了如何来从序列发生器的数据。
先决条件
要运行本章中所提供的例子,你需要与水槽一起安装HDFS。因此,验证Hadoop的安装和进一步处理之前启动HDFS。 (请参考前面的章节,以了解如何启动HDFS)。
配置水槽
我们要配置源,信道,并采用在conf文件夹配置文件下沉。这一章中给出的示例使用序列发生器源 , 内存通道和一个HDFS水槽 。
序列发生器源
这是连续地产生的事件的来源。它认为从0和递增1开始它被用于测试目的的计数器。在配置此源,您必须提供值以下属性 -
通道
源类型 -序列
渠道
我们所使用的内存通道。要配置内存通道,你必须提供一个值,该通道的类型。下面给出的是,你需要在配置内存通道提供的属性列表 -
类型 -它拥有信道的类型。在我们的例子类型是MemChannel。
容量 -它是存储在信道的事件的最大数量。它的默认值是100(可选)
TransactionCapacity -它是信道接收或发送事件的最大数量。它的默认值是100(可选)。
HDFS水槽
此水槽将数据写入HDFS。要配置此片,你必须提供以下详细信息。
渠道
类型 - HDFS
hdfs.path -在HDFS的目录中的数据将被存储的路径。
我们可以提供根据脚本一些可选的值。下面给出的是HDFS的可选属性下沉,我们配置在我们的应用程序。
的fileType -这是我们的HDFS文件的所需文件格式。 SequenceFile,和的数据流中的CompressedStream可与此流的三种类型。在我们的例子中,我们使用数据流 。
writeFormat -可能是文本或可写的。
BATCHSIZE -这是之前被冲洗到HDFS写入文件的事件的数量。它的默认值是100。
rollsize -这是文件的大小来触发一卷。它的默认值是100。
rollCount -它是写入到该文件中被卷之前事件的数目。它的默认值是10。
示例 - 配置文件
给出下面是配置文件的一个例子。复制此内容,并保存在水槽的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
执行
通过浏览水槽主目录,如下图所示执行应用程序。
$ cd $FLUME_HOME $./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/seq_gen.conf --name SeqGenAgent
如果一切正常,源开始产生,这将在日志文件的形式推入HDFS序号。
下面给出的是命令提示符窗口取由序列生成到HDFS产生的数据的快照。

验证HDFS
您可以通过以下网址访问Hadoop的管理Web UI -
http://localhost:50070/
点击页面的右侧命名的实用程序的下拉。你可以看到两个选项,如图下面给出的图所示。

点击浏览该文件系统,并输入您已存储的序列发生器产生的数据的HDFS目录的路径。
在我们的例子中,路径是/用户/ Hadoop的/ seqgen_data /。然后,可以看到,由序列发生器生成的日志文件的列表中,存储在HDFS下面给出。

验证文件的内容
所有这些日志文件包含连续数字的格式。可以验证这些文件的内容在使用cat命令如下所示文件系统。
