繁体   English   中英

阿帕奇动物园管理员卡夫卡路径

[英]apache zookeeper kafka path

我有一个应用程序可以设置与kafka主题的风暴连接。 我在组织中从另一个类似的存储库中模仿的设置具有如下属性:

zookeeper.connect=127.0.0.1:2181/kafka_0.9

我发现在此设置下,在我的本地开发环境中,我的应用尝试创建风暴喷口时会引发错误。 该错误可追溯到对getNumPartitions的调用。 详细的错误日志如下:

org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/topics/Moment_2018_01_16_07_59_08/partitions
at org.apache.zookeeper.KeeperException.create(KeeperException.java:111) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1590) ~[zookeeper-3.4.6.jar:3.4.6-1569965]
at org.apache.curator.framework.imps.GetChildrenBuilderImpl$3.call(GetChildrenBuilderImpl.java:214) ~[curator-framework-2.5.0.jar:na]
at org.apache.curator.framework.imps.GetChildrenBuilderImpl$3.call(GetChildrenBuilderImpl.java:203) ~[curator-framework-2.5.0.jar:na]
at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:107) ~[curator-client-2.5.0.jar:na]
at org.apache.curator.framework.imps.GetChildrenBuilderImpl.pathInForeground(GetChildrenBuilderImpl.java:199) ~[curator-framework-2.5.0.jar:na]
at org.apache.curator.framework.imps.GetChildrenBuilderImpl.forPath(GetChildrenBuilderImpl.java:191) ~[curator-framework-2.5.0.jar:na]
at org.apache.curator.framework.imps.GetChildrenBuilderImpl.forPath(GetChildrenBuilderImpl.java:38) ~[curator-framework-2.5.0.jar:na]
at storm.kafka.DynamicBrokersReader.getNumPartitions(DynamicBrokersReader.java:91) ~[storm-kafka-0.9.6.jar:na]

当我从属性中取出尾随的/kafka_0.9时,如下所示:

zookeeper.connect=127.0.0.1:2181

然后此错误消失。 我的猜测是,我们组织的代码在暂存和生产环境中有一个特定的路径/kafka_0.9设置(可能使用kafka 0.9进行指定)。 但是我想知道如何才能在本地开发环境中创建此路径,以及与我们的暂存和产品环境保持一致吗? 目前,我docker-compose.yml对于zookeeper和kafka具有以下功能:

zookeeper:
  image: myorg/zookeeper:3.4.8
  ports:
    - "2181:2181"

kafka:
  image: myorg/kafka:kafka-0.10
  hostname: myapp.docker
  ports:
    - "9092:9092"
  environment:
    EXPOSED_HOST: myapp.docker
    KAFKA_PORT: 9092
    KAFKA_ADVERTISED_PORT: 9092
    ZOOKEEPER_PORT_2181_TCP_ADDR: zookeeper
    ZOOKEEPER_PORT_2181_TCP_PORT: 2181
    ZOOKEEPER_IP: zookeeper
  links:
    - zookeeper
  extra_hosts:
    - "localhost:0.0.0.0"

尝试添加环境变量: CHROOT=/kafka_0.9

Zookeeper还允许您添加“ chroot”路径,该路径将使该群集的所有kafka数据显示在特定路径下。 这是在同一zookeeper群集上设置多个Kafka群集或其他应用程序的一种方法。 为此,请以hostname1:port1,hostname2:port2,hostname3:port3 / chroot / path的形式提供一个连接字符串,该字符串会将所有群集数据放在/ chroot / path路径下。 请注意,在启动代理之前,您必须自己创建此路径,并且使用者必须使用相同的连接字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM