我是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,以确保一切正确。