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