【问题标题】:Config cluster ZK_HOST on Storm Topology在 Storm Topology 上配置集群 ZK_HOST
【发布时间】:2016-09-14 16:00:21
【问题描述】:

现在我刚刚成功地在单台机器上使用单节点设置了我的风暴拓扑。我使用KafkaSpout如下:

String zkHostPort = "localhost:2181";
String topic = "sentences";

String zkRoot = "/kafka-sentence-spout";
String zkSpoutId = "sentence-spout";
ZkHosts zkHosts = new ZkHosts(zkHostPort);

SpoutConfig spoutCfg = new SpoutConfig(zkHosts, topic, zkRoot, zkSpoutId);
KafkaSpout kafkaSpout = new KafkaSpout(spoutCfg);
return kafkaSpout;

现在我设置了集群zookeeper(三个节点:server1.com:2181,server2.com:2181.server3.com:2181)和集群kafka(三个节点)。我想知道如何为此目的更改 Storm Topology 上的代码。请帮帮我!!

【问题讨论】:

  • 我不确定:你试过String zkHostPort = "server1.com:2181,server2.com:2181,server3.com:2181";吗? (这当然必须是您的 Kafka 代理使用的 ZK 节点——代理信息将从那里获取。作为替代方案,您可以省略 ZkHosts 并定义静态代理,如下所述:storm.apache.org/releases/1.0.0/storm-kafka.html

标签: apache-kafka apache-zookeeper apache-storm topology bigdata


【解决方案1】:

请使用以下配置:

String zkHostPort = "server1.com:2181,server2.com:2181,server3.com:2181";
String topic = "sentences";

String zkRoot = "/kafka-sentence-spout";
String zkSpoutId = "sentence-spout";
ZkHosts zkHosts = new ZkHosts(zkHostPort);

SpoutConfig spoutCfg = new SpoutConfig(zkHosts, topic, zkRoot, zkSpoutId);
KafkaSpout kafkaSpout = new KafkaSpout(spoutCfg);
return kafkaSpout;

注意:这里最常见的问题是逗号后面的主机之间有空格,主机之间不能有空格。

正确:

server1.com:2181,server2.com:2181,server3.com:2181

错误:

server1.com:2181, server2.com:2181, server3.com:2181

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-12
    • 2019-10-11
    • 1970-01-01
    • 2010-12-11
    • 2015-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多