2014-02-14 47 views
0

我想使用flume使用Twitter Stream API並將推文索引到我的elasticsearch。我將flume.conf設置爲使用com.cloudera.flume.source.TwitterSource作爲twitter源代碼(使用我的開發人員令牌),並使用默認彈出窗口來接收接收器。FluS使用TwitterSource和Elasticsearch接收器

我能夠得到的tweet(因爲我也保存到HDFS,當我打開該文件,我可以看到微博),但是當我搜索到我elasticsearch,我得到的迴應:

{ 
     _index: twitter-2014-02-14 
     _type: tweet-rt 
     _id: ilL5ZrBRSlqrZcsVUbnO-g 
     _version: 1 
     _score: 1 
     _source: { 
     @message: [email protected] 
     @timestamp: 2014-02-14T10:16:13.000Z 
     @fields: { 
     timestamp: 1392372973000 
     } 

    } 

這裏是我的水槽配置的例子。

# - ElasticSearch Sink                                 
TwitterAgent.sinks.ES.type = elasticsearch 
TwitterAgent.sinks.ES.channel = FileChannel 
TwitterAgent.sinks.ES.hostNames = 192.168.10.100:9300 
TwitterAgent.sinks.ES.indexName = twitter 
TwitterAgent.sinks.ES.indexType = tweet-rt 
TwitterAgent.sinks.ES.clusterName = testou 

我需要添加其他東西嗎?我不明白爲什麼ES不能反序列化我的推文。

任何想法?

thankyou

回答

1

這很奇怪。它正在XContentBuilder上使用某種形式的identityHashCode來獲取該消息,而不應該這樣做。

我想我會推薦清理Flume並重新安裝。我會擔心classpath和JAR依賴性問題。

什麼版本的Flume?

+0

我用的水槽1.4和Hadoop 1.2 elasticsearch 1.90 – AnthonyC

+0

執行JVM版本和elasticsearch版本的jar水槽和elasticsearch之間行進呢? – Sarge