使用Apache Flume提取twitter数据时出错

时间:2016-01-19 06:44:30

标签: twitter4j cloudera-cdh flume-ng

我是Hadoop的新手。训练并开始练习。 我正在使用cloudera quickstart VM(CDH5.5)进行练习。

按照以下规定配置Apache flume twitter数据提取

设置代理

的属性
TwitterAgent.sources = Twitter 
TwitterAgent.channels = MemChannel 
TwitterAgent.sinks = HDFS

配置来源

TwitterAgent.sources.Twitter.type = com.cloudera.flume.source.TwitterSource TwitterAgent.sources.Twitter.channels = MemChannel TwitterAgent.sources.Twitter.consumerKey = <consumerKey> TwitterAgent.sources.Twitter.consumerSecret = <consumerSecret> TwitterAgent.sources.Twitter.accessToken = <accessToken> TwitterAgent.sources.Twitter.accessTokenSecret = <accessTokenSecret>
TwitterAgent.sources.Twitter.keywords = morning, night, hadoop, bigdata

配置频道

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

配置接收器

TwitterAgent.sinks.HDFS.channel = MemChannel 
TwitterAgent.sinks.HDFS.type = hdfs 
TwitterAgent.sinks.HDFS.hdfs.path = hdfs://localhost:9000/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

当我运行水槽提取数据时,我收到如下所述的错误。

WARN twitter4j.TwitterStreamImpl:角色不接受参数。 406:当请求中指定了无效格式时,由Search API返回。 当一个或多个参数不适合资源时由Streaming API返回。例如,track参数会在以下情况下抛出此错误: track关键字太长或太短。 指定的边界框无效。 没有为过滤资源定义谓词,例如,既不跟踪也不跟随参数定义。 关注userid无法读取。 参数曲目项索引0太短:

有人可以帮忙解决错误吗?

1 个答案:

答案 0 :(得分:0)

您在此行中使用的hdfs端口号不正确。 HDFS://本地主机:9000 /用户/水槽/鸣叫/

正确的行应该是: HDFS://本地主机:8020 /用户/水槽/鸣叫

您可以在此处查看cloudera中使用的端口号: http://www.cloudera.com/documentation/enterprise/latest/topics/cdh_ig_ports_cdh5.html

另外,如果你看到你得到的警告是因为twitter4j.jar库文件。 请确保您使用的jar文件正确无误。我建议你在eclipse中解压缩文件并重新构建jar,以确保一切都正确。

检查此链接以了解如何提取Twitter数据。 https://www.dezyre.com/hadoop-tutorial/flume-hadoop-twitter-data-extraction

由于您是hadoop的新手,您可以查看他们的博客以获取更多教程和文章。