当前位置: 首页 > 知识库问答 >
问题:

使用flume将twitter数据流传输到Hadoop时出错

颛孙嘉玉
2023-03-14

我在Ubuntu 14.04上使用Hadoop-1.2.1

我正在尝试使用Flume-1.6.0将数据从twitter流式传输到HDFS。我已经下载了Flume-sources-1.0-SNAPSHOT。jar并将其包含在flume/lib文件夹中。我已经设置了flume-sources-1.0-SNAPSHOT的路径。jar在conf/FLUME环境中显示为FLUME_CLASSPATH。这是我的水槽代理conf文件:

#setting properties of agent
Twitter-agent.sources=source1
Twitter-agent.channels=channel1
Twitter-agent.sinks=sink1

#configuring sources
Twitter-agent.sources.source1.type=com.cloudera.flume.source.TwitterSource
Twitter-agent.sources.source1.channels=channel1
Twitter-agent.sources.source1.consumerKey=<consumer-key>
Twitter-agent.sources.source1.consumerSecret=<consumer Secret>
Twitter-agent.sources.source1.accessToken=<access Toekn>
Twitter-agent.sources.source1.accessTokenSecret=<acess Token Secret>
Twitter-agent.sources.source1.keywords= morning, night, hadoop, bigdata

#configuring channels
Twitter-agent.channels.channel1.type=memory
Twitter-agent.channels.channel1.capacity=10000
Twitter-agent.channels.channel1.transactionCapacity=100

#configuring sinks
Twitter-agent.sinks.sink1.channel=channel1
Twitter-agent.sinks.sink1.type=hdfs
Twitter-agent.sinks.sink1.hdfs.path=flume/twitter/logs
Twitter-agent.sinks.sink1.rollSize=0
Twitter-agent.sinks.sink1.rollCount=1000
Twitter-agent.sinks.sink1.batchSize=100
Twitter-agent.sinks.sink1.fileType=DataStream
Twitter-agent.sinks.sink1.writeFormat=Text

当我运行这个代理时,我会遇到这样的错误:

css lang-css prettyprint-override">15/06/22 14:14:49 INFO source.DefaultSourceFactory: Creating instance of source source1, type com.cloudera.flume.source.TwitterSource
15/06/22 14:14:49 ERROR node.PollingPropertiesFileConfigurationProvider: Unhandled error
java.lang.NoSuchMethodError: twitter4j.conf.Configuration.isStallWarningsEnabled()Z
	at twitter4j.TwitterStreamImpl.<init>(TwitterStreamImpl.java:60)
	at twitter4j.TwitterStreamFactory.<clinit>(TwitterStreamFactory.java:40)
	at com.cloudera.flume.source.TwitterSource.<init>(TwitterSource.java:64)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
	at java.lang.Class.newInstance(Class.java:442)
	at org.apache.flume.source.DefaultSourceFactory.create(DefaultSourceFactory.java:44)
	at org.apache.flume.node.AbstractConfigurationProvider.loadSources(AbstractConfigurationProvider.java:322)
	at org.apache.flume.node.AbstractConfigurationProvider.getConfiguration(AbstractConfigurationProvider.java:97)
	at org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:140)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

我的 flume/lib 文件夹已经有 twitter4j-core-3.0.3.jar

如何纠正此错误?

共有2个答案

宰父衡
2023-03-14

Change Twitter-agent.sources.source1.type=com.cloudera.flume.source.TwitterSource with TwitterAgent.sources.Twitter.type = org.apache.flume.source.twitter.TwitterSource

邢硕
2023-03-14

我找到了解决这个问题的办法。作为流体源-1.0-SNAPSHOT。jar和twitter4j-stream-3.0.3.jar包含相同的FilterQuery。类,会出现jar冲突。所有的twitter4j-3.x.x都使用这个类,所以最好下载2.2.6版本的twitter jar(twitter 4j核心、twitter 4流、twitter4媒体支持),并将3.x.x替换为flume/lib目录下的这些新下载的jar。

再次运行代理,推特数据将被流式传输到HDFS。

 类似资料:
  • 我试图将twitter提要流到hdfs,然后使用Hive。但是第一部分,流数据和加载到hdfs不起作用,并给出空指针异常。 这是我尝试过的。 4.我将flume-sources-1.0-snapshot.jar添加到/user/lib/flume/lib。 5.启动Hadoop并执行以下操作 6.我在/user/lib/flume中运行以下内容

  • 我遵循了cloudera的教程(http://blog.cloudera.com/blog/2012/09/analyzing-twitter-data-with-hadoop/)用于应用程序使用Apache Flume将twitter数据摄取到HDFS中。Twitter已将其api连接限制为SSL/TLS,自2014年1月15日起生效。在此更改后,我的Flume代理已停止流式传输Twitter数

  • 我想将数据从高音扬声器流式传输到hdfs,我使用了以下命令:./bin/Flume-ng代理-n TwitterAgent-c conf-f /usr/lib/apache-flume-1.4.0-bin/conf/flume.conf 我不能得到我期望的结果。没有数据流。 谁有linus命令可以将数据从tweeter传输到hdfs?

  • 主要内容:相关知识,2.系统环境,3.任务内容,4.任务步骤1.相关知识 Flume是一个海量日志采集、聚合和传输的日志收集系统。 Kafka是一个可持久化的分布式的消息队列。 由于采集和处理数据的速度不一定同步,所以使用Kafka这个消息中间件来缓冲,如果你收集了日志后,想输出到多个业务方也可结合Kafka,Kafka支持多个业务来读取数据。 上图中Kafka生产的数据,是由Flume提供的,这里我们需要用到Flume集群,通过Flume集群将Agent

  • 我正在尝试使用apache flume将数据加载到hbase中。当我使用flume将数据传输到hadoop时,它工作得很好。但是当我启动flume代理将数据加载到hbase时,我得到了NoClassDefFoundError。 这是我的水槽配置: flume-env.sh 代理4.conf

  • 我正在使用Flume 1.6.0-cdh5.9.1使用Twitter源流式传输推文。 配置文件如下所示: 对于Cloudera. jar依赖项,我使用Maven使用以下依赖项构建了: 现在,当我运行Flume Agent时,它成功启动,连接到Twitter,但在最后一行(接收状态流)后停止: 在最后一行之后什么都没有发生。它不会终止,不会流式传输任何东西。我看了一下HDFS位置,那里没有创建任何东