【发布时间】:2015-09-03 23:02:10
【问题描述】:
我正在尝试连接属于在 LocalCluster 对象上运行的风暴拓扑的 KafkaSpout。我根据在https://github.com/apache/storm/tree/master/external/storm-kafka 上找到的文档编写了这段代码。
private static final String brokerZkStr = "localhost:2181";
private static final String topic = "/test-topic-multi";
public void startTopology()
{
BrokerHosts hosts = new ZkHosts(brokerZkStr);
SpoutConfig conf = new SpoutConfig(hosts, topic, "localhost:2181", UUID
.randomUUID().toString());
KafkaSpout kafkaSput = new KafkaSpout(conf);
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("kafka-spout", kafkaSput);
Config topConfig = new Config();
topConfig.setDebug(true);
LocalCluster cluster = new LocalCluster();
cluster.submitTopology("HelloStorm", topConfig , builder.createTopology());
}
我想使用在 localhost:2181 运行的 zookeeper 实例,但尝试运行代码时出现以下错误:
java.lang.RuntimeException: java.lang.RuntimeException: java.lang.IllegalArgumentException: Invalid path string "/brokers/topics//test-topic-multi/partitions" caused by empty node name specified @16
at storm.kafka.DynamicBrokersReader.getBrokerInfo(DynamicBrokersReader.java:81)
at storm.kafka.trident.ZkBrokerReader.<init>(ZkBrokerReader.java:42)
at storm.kafka.KafkaUtils.makeBrokerReader(KafkaUtils.java:57)
at storm.kafka.KafkaSpout.open(KafkaSpout.java:87)
似乎只是设置错误的问题,但我解决不了
PS Kafka 配置如下:1 个 Zookeeper 实例和 2 个在 localhost:9092 和 localhost:9093 上运行的代理
【问题讨论】:
标签: apache-kafka apache-storm apache-zookeeper