【发布时间】:2020-05-01 15:03:51
【问题描述】:
我正在使用 Kafka spout 构建 Storm 拓扑。我正在以 JSON 格式从 Kafka(没有 Zookeeper)消费,Storm 应该输出它。
如何为 JSON 数据类型定义正确的架构?
目前,我有这样的代码库和基本的 spout 实现:
val cluster = new LocalCluster()
val bootstrapServers = "localhost:9092"
val topologyBuilder = new TopologyBuilder()
val spoutConfig = KafkaSpoutConfig.builder(bootstrapServers, "test").build()
topologyBuilder.setSpout("kafka_spout", new KafkaSpout(spoutConfig), 1)
val config = new Config()
cluster.submitTopology("kafkaTest", config, topologyBuilder.createTopology())
cluster.shutdown()
我是 Apache Storm 的新手,因此很乐意提供任何建议。
【问题讨论】:
-
“Kafka(没有 Zookeeper)”是什么意思?你仍然需要 Zookeeper,而且 broker 不应该充当生产者应用程序,无论如何
-
另外,storm 是必需的吗? Kafka Streams 应该能够做同样的事情
-
我已经将 Kafka 设置为没有 Zookeper 的 docker 容器用于本地开发。 Storm 是必需的
-
Kafka 需要 Zookeeper ... Storm 只会将其作为字符串传递
-
是的,我使用了 Spotify 镜像,但 Kafka 生产者和 Spark/Flink 消费者一样工作正常,但 Storm 不行
标签: json apache-kafka apache-storm spout