《ApacheFlume教程》第九章 如何配置Flum

本文介绍如何使用Apache Flume从Twitter源和数据序列生成器收集数据,并将其存储到HDFS中。具体包括配置Twitter源、内存通道及HDFS接收器的方法,以及NetCat源和记录器接收器的配置。
摘要由CSDN通过智能技术生成
摘要:   我们要配置源,信道,并使用在配置文件中下沉的conf文件夹中。这一章中给出的示例使用阿帕奇水槽提供一个实验源名为Twitter的1%流水内存通道和HDFS下沉。  Twitter1%Firehose来源  这个源是高度实验性的。 ...
  我们要配置源,信道,并使用在配置文件中下沉的conf文件夹中。这一章中给出的示例使用阿帕奇水槽提供一个实验源名为Twitter的1%流水内存通道和HDFS下沉。

  Twitter1%Firehose来源

  这个源是高度实验性的。它使用流API连接到1%的示例TwitterFirehose,并持续下载tweets,将其转换为Avro格式,并将Avro事件发送到下游Flume接收器。

  我们将默认获得这个源和Flume的安装。该罐子对应于这个源文件可以在位于LIB文件夹,如下图所示。

  设置类路径

  在设置类路径变量的LIB水槽的文件夹中Flume-env.sh文件,如下所示。

  exportCLASSPATH=$CLASSPATH:/FLUME_HOME/lib/*

  这源需要的详细信息,如消费者的关键,消费者的秘密,访问令牌,以及访问令牌秘密Twitter的应用程序。配置此源时,必须向以下属性提供值-

  频道

  源类型:org.apache.flume.source.twitter.TwitterSource

  consumerKey?-OAuth用户端密钥

  consumerSecret?-OAuth用户端密钥

  的accessToken?-OAuth访问令牌

  accessTokenSecret?-的OAuth令牌秘密

  maxBatchSize?-Twitter消息,应该是在叽叽喳喳批次的最大数量。默认值为1000(可选)。

  maxBatchDurationMillis?-毫秒的最大数量为关闭一批前等待。默认值为1000(可选)。

  渠道

  我们正在使用内存通道。要配置内存通道,您必须对渠道的类型提供价值。

  类型?-它拥有信道的类型。在我们的例子中,类型为MemChannel。

  容量?-它是存储在信道的事件的最大数量。其默认值为100(可选)。

  TransactionCapacity?-它是信道接收或发送事件的最大数量。其默认值为100(可选)。

  HDFS接收器

  此接收器将数据写入HDFS。要配置此片,你必须提供以下资料。

  渠道

  类型?-HDFS

  hdfs.path?-在HDFS的目录中的数据将被存储的路径。

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

  的fileType?-这是我们的HDFS文件的所需文件格式。SequenceFile,的数据流中和CompressedStream可与此流的三种类型。在我们的例子中,我们使用了的数据流中。

  writeFormat?-可能是文本或可写的。

  BATCHSIZE?-这是之前被冲洗到HDFS写入文件的事件的数量。其默认值为100。

  rollsize?-这是文件的大小来触发一卷。默认值为100。

  rollCount?-它是写入到该文件中被卷之前事件的数目。其默认值为10。

  示例-配置文件

  下面给出了配置文件的示例。复制此内容,并保存为twitter.conf在水槽的conf文件夹。

  #Namingthecomponentsonthecurrentagent.

  TwitterAgent.sources=Twitter

  TwitterAgent.channels=MemChannel

  TwitterAgent.sinks=HDFS

  #Describing/Configuringthesource

  TwitterAgent.sources.Twitter.type=org.apache.flume.source.twitter.TwitterSource

  TwitterAgent.sources.Twitter.consumerKey=YourOAuthconsumerkey

  TwitterAgent.sources.Twitter.consumerSecret=YourOAuthconsumersecret

  TwitterAgent.sources.Twitter.accessToken=YourOAuthconsumerkeyaccesstoken

  TwitterAgent.sources.Twitter.accessTokenSecret=YourOAuthconsumerkeyaccesstokensecret

  TwitterAgent.sources.Twitter.keywords=tutorialspoint,java,bigdata,mapreduce,mahout,hbase,nosql

  #Describing/Configuringthesink

  TwitterAgent.sinks.HDFS.type=hdfs

  TwitterAgent.sinks.HDFS.hdfs.path=hdfs://localhost:9000/user/Hadoop/twitter_data/

  TwitterAgent.sinks.HDFS.hdfs.fileType=DataStream

  TwitterAgent.sinks.HDFS.hdfs.writeFormat=Text

  TwitterAgent.sinks.HDFS.hdfs.batchSize=1000

  TwitterAgent.sinks.HDFS.hdfs.rollSize=0

  TwitterAgent.sinks.HDFS.hdfs.rollCount=10000

  #Describing/ConfiguringthechannelTwitterAgent.channels.MemChannel.type=memory

  TwitterAgent.channels.MemChannel.capacity=10000

  TwitterAgent.channels.MemChannel.transactionCapacity=100

  #Bindingthesourceandsinktothechannel

  TwitterAgent.sources.Twitter.channels=MemChannel

  TwitterAgent.sinks.HDFS.channel=MemChannel

  执行

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

  $cd$FLUME_HOME

  $bin/flume-ngagent--conf./conf/-fconf/twitter.conf

  Dflume.root.logger=DEBUG,console-nTwitterAgent

  如果一切顺利,将tweets流传输到HDFS将开始。下面给出了抓取tweets时命令提示符窗口的快照。

  验证HDFS

  您可以使用以下URL访问Hadoop管理WebUI。

  http://localhost:50070/

  点击命名的下拉工具在页面的右侧。您可以看到两个选项,如下面的快照所示。

  点击浏览文件系统,并输入您所储存的鸣叫的HDFS目录的路径。在我们的例子中,路径是/用户/Hadoop的/twitter_data/。然后,您可以看到存储在HDFS中的twitter日志文件的列表,如下所示。

  ApacheFlume-序列生成器源

  在上一章中,我们已经看到了如何从twitter源提取数据到HDFS。本章介绍了如何来从数据序列发生器。

  先决条件

  要运行本章中提供的示例,您需要安装HDFS沿着水槽。因此,验证Hadoop安装并启动HDFS,然后继续。(参考上一章了解如何启动HDFS)。

  配置Flume

  我们要配置源,信道,并使用在配置文件中下沉的conf文件夹中。这一章中给出的示例使用NetCat的来源,内存通道和一个记录片。

  NetCat源

  在配置NetCat源时,我们必须在配置源时指定端口。现在,源(NetCat源)侦听给定的端口,并接收我们在该端口中输入的每一行作为单个事件,并通过指定的通道将其传送到接收器。

  配置此源时,必须向以下属性提供值-

  频道

  源类型?-netcat的

  绑定?-主机名或IP地址进行绑定。

  端口?-端口号,这是我们希望的来源听。

  渠道

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

  类型?-它拥有信道的类型。在我们的例子中,类型为MemChannel。

  容量?-它是存储在信道的事件的最大数量。其默认值为100.(可选)

  TransactionCapacity?-它是信道接收或发送事件的最大数量。其默认值为100.(可选)。

  记录器接收器

  此接收器记录传递给它的所有事件。一般来说,它用于测试或调试目的。要配置此接收器,您必须提供以下详细信息。

  渠道

  类型?-记录仪

  配置文件示例

  下面给出了配置文件的示例。复制此内容,并保存为netcat.conf在水槽的conf文件夹。

  #Namingthecomponentsonthecurrentagent

  NetcatAgent.sources=Netcat

  NetcatAgent.channels=MemChannel

  NetcatAgent.sinks=LoggerSink

  #Describing/Configuringthesource

  NetcatAgent.sources.Netcat.type=netcat

  NetcatAgent.sources.Netcat.bind=localhost

  NetcatAgent.sources.Netcat.port=56565

  #Describing/Configuringthesink

  NetcatAgent.sinks.LoggerSink.type=logger

  #Describing/Configuringthechannel

  NetcatAgent.channels.MemChannel.type=memory

  NetcatAgent.channels.MemChannel.capacity=1000

  NetcatAgent.channels.MemChannel.transactionCapacity=100

  #Bindthesourceandsinktothechannel

  NetcatAgent.sources.Netcat.channels=MemChannel

  NetcatAgent.sinks.LoggerSink.channel=MemChannel

  执行

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

  $cd$FLUME_HOME

  $./bin/flume-ngagent--conf$FLUME_CONF--conf-file$FLUME_CONF/netcat.conf

  --nameNetcatAgent-Dflume.root.logger=INFO,console

  如果一切顺利,源开始侦听给定的端口。在这种情况下,它是56565。以下是NetCat源的命令提示符窗口的快照,该窗口已启动并侦听端口56565。

  将数据传递到源

  要将数据传递到NetCat源,您必须打开配置文件中给出的端口。打开一个单独的终端连接到使用源(56565)卷曲命令。当连接成功后,你会得到一个消息,“?连接?”,如下图所示。

  $curltelnet://localhost:56565

  connected

  现在你可以逐行输入数据(在每行之后,你必须按Enter键)。该NetCat的源接收的每一行作为一个单独的事件,你会得到一个收到的消息“?OK?”。

  每当你与传球的数据完成的,可以按(退出控制台按Ctrl+C)。下面给出的是我们已连接到使用源控制台的快照卷曲命令。

  在上述控制台中输入的每一行将作为单独的事件由源接收。既然我们已经使用了记录器接收器,这些事件将通过指定通道(在这种情况下,内存通道)登录到控制台(来源控制台)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值