Flume不接受Twitter流的关键字

时间:2017-09-26 20:39:57

标签: hadoop flume flume-twitter

这是一个Hadoop新手,使用本教程:https://acadgild.com/blog/streaming-twitter-data-using-flume/来捕获推文。这是我的flume.conf文件:

TwitterAgent.sources = Twitter
TwitterAgent.channels = MemChannel
TwitterAgent.sinks = HDFS
TwitterAgent.sources.Twitter.type = org.apache.flume.source.twitter.TwitterSource
TwitterAgent.sources.Twitter.consumerKey=xxxx
TwitterAgent.sources.Twitter.consumerSecret=xxxx
TwitterAgent.sources.Twitter.accessToken=xxxx
TwitterAgent.sources.Twitter.accessTokenSecret=xxxx

TwitterAgent.sources.Twitter.keywords= #canpoli

TwitterAgent.sinks.HDFS.channel=MemChannel
TwitterAgent.channels.MemChannel.capacity=10000
TwitterAgent.sinks.HDFS.type=hdfs
TwitterAgent.sinks.HDFS.hdfs.path=hdfs:/xxxx/user/flume/tweets
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
TwitterAgent.sinks.HDFS.hdfs.rollInterval=600

TwitterAgent.channels.MemChannel.type=memory
TwitterAgent.channels.MemChannel.capacity=10000
TwitterAgent.channels.MemChannel.transactionCapacity=1000

TwitterAgent.sources.Twitter.channels = MemChannel
TwitterAgent.sinks.HDFS.channel = MemChannel`

它可以很好地传输推文,它可以正确保存到我想要的目录中,但它似乎是在不过滤我的关键字的情况下流式传输所有内容。我收到来自世界各地的推文,除了那个主题标签。

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

首先,它接受了所有主题标签,因为你给了一个空列表。

curr_字符是注释,因此等于之后的所有内容都被视为忽略。至少我认为它是如何被解析的。

您链接到一个不使用#的网站,因此我会按照该教程进行操作。

其次,该来源被认为是实验性的,似乎并未提及关键字。

https://flume.apache.org/FlumeUserGuide.html#twitter-1-firehose-source-experimental

您的代码看起来与Cloudera中的示例完全相同,其中包含配置中的注释并且包含关键字,如果您检查,则会有不同的源类。

#

https://github.com/cloudera/cdh-twitter-example/blob/master/flume-sources/flume.conf

您需要在那里下载该java代码,将其打包到JAR,并将其放在Flume lib目录中