Kafka到Elasticsearch,HDFS与Logstash或Kafka Streams / Connect

时间:2016-11-02 12:21:08

标签: elasticsearch apache-kafka logstash apache-kafka-streams apache-kafka-connect

我使用Kafka进行消息队列/处理。我的问题是关于绩效/最佳实践。我会做自己的性能测试,但也许有人已经有了成果/经验。

数据在Kafka(0.10)主题中是原始的,我想将其结构化为ES和HDFS。

现在我看到了两种可能性:

  • Logstash(Kafka输入插件,grok过滤器(解析),ES / webhdfs输出插件)
  • Kafka Streams(解析),Kafka Connect(ES sink,HDFS sink)

没有任何测试,我会说第二种选择更好/更清洁,更可靠?

1 个答案:

答案 0 :(得分:1)

Logstash用于将数据导入Elasticsearch的“最佳实践”。但是,WebHDFS不会具有作为Kafka Connect插件一部分的Java API的原始性能。

Grok可以在Kafka Streams进程中完成,因此您可以在任一位置进行解析。

如果您使用的是Elastic订阅,则他们想出售Logstash。 Confluent希望出售Kafka Streams + Kafka Connect。

Avro似乎是进行数据传输的最佳媒介,而Schema Registry是一种流行的方式。 IIUC,Logstash不能与Schema Registry或Avro配合使用,它更喜欢JSON。


在Hadoop领域,我将提供Apache Nifi或Streamsets的中间选项。

最后,这实际上取决于您的优先级,以及您(和您的团队)对这些工具的支持程度。