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条答案
按热度按时间inb24sb21#
首先,它接受所有的hashtags,因为您给出了一个空列表。
#
字符是一个注解,因此等号之后的所有内容都被视为忽略。至少我认为它是这样解析的。你链接到一个不使用
#
,所以我会一直遵循这个教程直到它成功。其次,这个来源被认为是实验性的,而且似乎没有提到关键字。
https://flume.apache.org/flumeuserguide.html#twitter-1-消防水龙带-源-实验
您的代码看起来几乎与cloudera中的示例完全相同,该示例在配置中包含注解,并且包含关键字,如果您选中这些关键字,则会有一个不同的源类。
https://github.com/cloudera/cdh-twitter-example/blob/master/flume-sources/flume.conf
您需要在那里下载java代码,将其打包到jar中,并将其放置在flume lib目录中