带有twittersource和elasticsearch sink的Flume

lx0bsm1f  于 2021-06-03  发布在  Flume
关注(0)|答案(2)|浏览(336)

我正在尝试使用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。
有什么想法吗?
谢谢你

jmp7cifd

jmp7cifd1#

这很奇怪。它在xcontentbuilder上执行某种形式的identityhashcode来获取该消息,但它不应该这样做。
我想我建议清理Flume,重新安装。我会关心类路径和jar依赖性问题。
什么版本的Flume?

9gm1akwq

9gm1akwq2#

对于遇到此错误的其他人,这是flume elastic search sink中的一个错误,现已修复。看到了吗https://issues.apache.org/jira/browse/flume-2126
如果您使用的是早于1.6的flume版本,那么您可能需要根据您的版本选择并使用此修补程序构建一个。

相关问题