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

Posted

技术标签:

【中文标题】Kafka 到 Elasticsearch、带有 Logstash 的 HDFS 或 Kafka Streams/Connect【英文标题】:Kafka to Elasticsearch, HDFS with Logstash or Kafka Streams/Connect 【发布时间】:2017-03-15 18:12:26 【问题描述】:

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

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

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

Lo​​gstash(Kafka 输入插件、grok 过滤器(解析)、ES/webhdfs 输出插件) Kafka Streams(解析)、Kafka Connect(ES 接收器、HDFS 接收器)

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

【问题讨论】:

我会推荐 Kafka Streams 和 Kafka Connect。 (但我有偏见。) 这里问了一个类似的问题***.com/q/39459225/2796894 【参考方案1】:

将数据导入 Elasticsearch 的 Logstash“最佳实践”。然而,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 的中间选项。

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

【讨论】:

以上是关于Kafka 到 Elasticsearch、带有 Logstash 的 HDFS 或 Kafka Streams/Connect的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch:使用 Logstash 构建从 Kafka 到 Elasticsearch 的管道 - Nodejs

ELK同步kafka带有key的Message

Elasticsearch:Data pipeline: Kafka => Flink => Elasticsearch

腾讯云Logstash实战4-使用Logstash消费kafka数据并写入到Elasticsearch

Elasticsearch:从 Kafka 到 Elasticsearch 的实时用户配置文件数据管道

Elasticsearch:从 Kafka 到 Elasticsearch 的实时用户配置文件数据管道