Flume 不接受 Twitter 流的关键字
Posted
技术标签:
【中文标题】Flume 不接受 Twitter 流的关键字【英文标题】:Flume not accepting keywords for Twitter stream 【发布时间】:2017-09-26 20:39:56 【问题描述】:这里是 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】:首先,它接受所有主题标签,因为您提供了一个空列表。
#
字符是注释,因此等号之后的所有内容都被视为忽略。至少我认为它是这样解析的。
您链接到的网站不使用#
,所以我会按照该教程进行操作,直到它起作用为止。
其次,该来源被认为是实验性的,并且似乎没有提及关键字。
https://flume.apache.org/FlumeUserGuide.html#twitter-1-firehose-source-experimental
您的代码看起来几乎与 Cloudera 中的这个示例完全相同,它在配置中包含 cmets 并具有关键字,如果您检查的话,就会发现有一个不同的源类。
TwitterAgent.sources.Twitter.type = com.cloudera.flume.source.TwitterSource
https://github.com/cloudera/cdh-twitter-example/blob/master/flume-sources/flume.conf
你需要在那里下载那个java代码,把它打包成一个JAR,然后放在Flume lib目录下
【讨论】:
我删除了主题标签,得到了相同的结果。正在摄取的所有推文均不包含任何关键字。 如果您运行提供的示例会怎样? 同样的事情发生了。 您确定您正在运行正确的配置吗?你用的是什么命令? flume-ng agent -n TwitterAgent -f /etc/flume/conf/flume.conf (文件所在的位置)我做了仔细检查,我运行的配置与我相同正在编辑。以上是关于Flume 不接受 Twitter 流的关键字的主要内容,如果未能解决你的问题,请参考以下文章
例外如下。 org.apache.flume.FlumeException:无法在flume twitter分析中加载源类型