Kafka到Elasticsearch,带有Logstash的HDFS或Kafka Streams / Connect

ime*_*ehl 5 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接收器,HDFS接收器)

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

cri*_*007 1

Logstash 将数据导入 Elasticsearch 的“最佳实践”。然而,WebHDFS 不具备作为 Kafka Connect 插件一部分的 Java API 的原始性能。

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

如果您订阅了 Elastic,那么他们会想出售 Logstash。Confluence 希望出售 Kafka Streams + Kafka Connect。

Avro 似乎是数据传输的最佳媒介,而架构注册表是实现这一目标的一种流行方式。IIUC、Logstash 不能很好地与架构注册表或 Avro 配合使用,并且更喜欢 JSON。


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

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