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



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

配置的 Apache flume 推特数据提取如下所述

设置代理的属性

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

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

警告推特4j。TwitterStreamImpl:角色不接受的参数。406:当请求中指定了无效格式时,由搜索 API 返回。当一个或多个参数不适合资源时由流式处理 API 返回。例如,在以下情况下,track 参数将引发此错误:跟踪关键字太长或太短。指定的边界框无效。没有为筛选的资源定义谓词,例如,既没有定义跟踪参数,也没有定义跟随参数。无法读取以下用户标识。参数跟踪项索引 0 太短:

任何人都可以帮助解决错误吗?

您在此行中使用的 hdfs 端口号不正确。hdfs://localhost:9000/user/flume/tweets/

正确的行应该是:hdfs://localhost:8020/user/flume/tweets

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

另外,如果您查看,则会收到警告是因为twitter4j.jar库文件。请确保您使用的 jar 文件正确无误。我建议您在 eclipse 中提取文件并重新构建 jar,以确保一切正确。

最新更新