我是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太短:
有人可以帮忙解决错误吗?
答案 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的新手,您可以查看他们的博客以获取更多教程和文章。