如何正确配置Twitter代理以从Twitter获取数据?

时间:2019-04-28 10:22:52

标签: java hadoop bigdata hadoop2 flume

我正在使用Hadoop 2.9.2和Flume 1.4.0从Twitter获取数据,但是我停留在以下段落:当我尝试使用bin/flume-ng agent -n TwitterAgent --conf ./conf/ -f conf/flume-twitter.conf -Dflume.root.logger=DEBUG,console运行该应用程序时,我得到以下信息错误:

    (conf-file-poller-0) [ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:149)] Unhandled error
    java.lang.NoSuchMethodError: com.google.common.cache.CacheBuilder.refreshAfterWrite(JLjava/util/concurrent/TimeUnit;)Lcom/google/common/cache/CacheBuilder;

所以我想那个软件包有问题,但是,因为我对Hadoop和Flume非常了解,所以我真的不知道出什么问题。

假设Hadoop工作正常(我再次确认了这一点),我正在按照本指南进行操作:

  1. 发射hadoop。
  2. https://developer.twitter.com/en/apps处创建一个Twitter应用并获取访问令牌。
  3. https://flume.apache.org/download.html bin版本下载Apache-Flume。
  4. 下载flume-sources-1.0-SNAPSHOT.jar(附加)并解压缩到水槽的lib文件夹中。
  5. 现在您需要为水槽创建一个.conf文件:

5.1创建文件conf / flume-twitter.conf并复制/粘贴此文件,并正确填充:

    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 = 
    TwitterAgent.sources.Twitter.consumerSecret = 
    TwitterAgent.sources.Twitter.accessToken = 
    TwitterAgent.sources.Twitter.accessTokenSecret =

    TwitterAgent.sources.Twitter.keywords = 

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

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

5.2将conf/flume-env.sh.template重命名为conf/flume-env.sh并添加以下行:

    export JAVA_HOME=/your/java/path
    FLUME_CLASSPATH="/your/path/to/apache-flume-1.4.0-bin/lib/flume-sources-1.0-SNAPSHOT.jar"
  1. 在.bashrc文件中设置FLUME_HOME,并添加以下行:

    export FLUME_HOME=/your/path/to/apache-flume-1.4.0-bin
    export PATH=$PATH:/FLUME_HOME/bin
    export CLASSPATH=$CLASSPATH:/FLUME_HOME/lib/*
    

可能还需要具有HADOOP_HOME(使用相同的步骤)。 使用源.bashrc更新。

  1. 复制/粘贴以下文件: 复制.jar文件夹中share/hadoop/common中的所有flume/lib文件 复制.jar文件夹中share/hadoop/common/lib中所有flume/lib个文件

  2. 从以下位置开始水槽:

    bin/flume-ng agent -n TwitterAgent --conf ./conf/ -f conf/flume-twitter.conf -Dflume.root.logger=DEBUG,console
    

我和我的朋友遵循相同的指南,并执行了完全相同的步骤,但是尽管它起作用了,但我的却没有。我该怎么解决?

0 个答案:

没有答案