2017-02-08 20 views
0

Я использую Flume 1.6.0-cdh5.9.1 Поток твитов с использованием источника Twitter.Flume Twitter Streaming Issue

Файл конфигурации ниже:

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 = xxxxxxxxxx 
TwitterAgent.sources.Twitter.consumerSecret = xxxxxxxxxx 
TwitterAgent.sources.Twitter.accessToken = xxxxxxxxxx 
TwitterAgent.sources.Twitter.accessTokenSecret = xxxxxxxxxx 
TwitterAgent.sources.Twitter.keywords = hadoop, cloudera 

TwitterAgent.sinks.HDFS.channel = MemChannel 
TwitterAgent.sinks.HDFS.type = hdfs 
TwitterAgent.sinks.HDFS.hdfs.path = hdfs://localhost:8020/user/cloudera/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.sinks.HDFS.hdfs.rollInterval = 600 

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

для Cloudera .jar зависимости, я построил flume-sources-1.0-SNAPSHOT.jar с Maven использованием ниже зависимостей:

<dependencies> 
    <!-- For the Twitter API --> 
    <dependency> 
     <groupId>org.twitter4j</groupId> 
     <artifactId>twitter4j-stream</artifactId> 
     <version>4.0.6</version> 
    </dependency> 

    <!-- Hadoop Dependencies --> 
    <dependency> 
     <groupId>org.apache.flume</groupId> 
     <artifactId>flume-ng-core</artifactId> 
     <version>1.6.0-cdh5.9.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.flume</groupId> 
     <artifactId>flume-ng-sdk</artifactId> 
     <version>1.6.0-cdh5.9.1</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-common</artifactId> 
     <version>2.6.0-cdh5.9.1</version> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 

Теперь, когда я бегу Flume агент , он запускается успешно, подключается к Твиттеру, но останавливается после последней строки (Состояние получения статуса):

2017-02-08 21:55:12,556 (Twitter Stream consumer-1[initializing]) [INFO - twitter4j.internal.logging.SLF4JLogger.info(SLF4JLogger.java:83)] Establishing connection. 
2017-02-08 21:55:46,474 (Twitter Stream consumer-1[Establishing connection]) [INFO - twitter4j.internal.logging.SLF4JLogger.info(SLF4JLogger.java:83)] Connection established. 
2017-02-08 21:55:46,474 (Twitter Stream consumer-1[Establishing connection]) [INFO - twitter4j.internal.logging.SLF4JLogger.info(SLF4JLogger.java:83)] Receiving status stream. 

После последней строки ничего не происходит. Он не заканчивается, ничего не передает. Я посмотрел местоположение HDFS, и там ничего не создано.

Может кто-нибудь помочь мне здесь?

ответ

0

Проблема заключается в конфигурации TwitterAgent.sources.Twitter.keywords

Twitter Источник будет работать нормально и будет постоянно тянуть твитов до тех пор, как он находит данные в шланговой. Я пробовал с каким-то другим популярным ключевым словом, и он работал отлично.