我正在尝试使用flume使用twitter流api并将tweet索引到elasticsearch。我将flume.conf设置为使用com.cloudera.flume.source.twittersource作为twitter源(使用我的dev令牌),并对接收器使用默认的elastisearch。
我能够获得tweets(因为我还将其保存到hdfs中,当我打开文件时,我可以看到tweets),但是当我搜索到我的elasticsearch时,我得到的响应是:
{
_index: twitter-2014-02-14
_type: tweet-rt
_id: ilL5ZrBRSlqrZcsVUbnO-g
_version: 1
_score: 1
_source: {
@message: org.elasticsearch.common.xcontent.XContentBuilder@12da4409
@timestamp: 2014-02-14T10:16:13.000Z
@fields: {
timestamp: 1392372973000
}
}
这里是我的Flume配置的例子。
# - 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不能反序列化我的tweet。
有什么想法吗?
谢谢你
2条答案
按热度按时间jmp7cifd1#
这很奇怪。它在xcontentbuilder上执行某种形式的identityhashcode来获取该消息,但它不应该这样做。
我想我建议清理Flume,重新安装。我会关心类路径和jar依赖性问题。
什么版本的Flume?
9gm1akwq2#
对于遇到此错误的其他人,这是flume elastic search sink中的一个错误,现已修复。看到了吗https://issues.apache.org/jira/browse/flume-2126
如果您使用的是早于1.6的flume版本,那么您可能需要根据您的版本选择并使用此修补程序构建一个。