5

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

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

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

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

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

4

1 回答 1

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 的中间选项。

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

于 2018-12-11T04:24:45.077 回答