codecamp

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

点击浏览该文件系统,并输入您已存储的序列发生器产生的数据的HDFS目录的路径。

在我们的例子中,路径是/用户/ Hadoop的/ seqgen_data /。然后,可以看到,由序列发生器生成的日志文件的列表中,存储在HDFS下面给出。

浏览文件系统

验证文件的内容

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

验证文件的内容
Apache的水槽抓取Twitter数据
Apache的水槽NetCat的来源
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }