gpt4 book ai didi

linux - 更改 zookeeper 中的 Kafka 主机名条目并在 Storm 拓扑重新启动时保持它

转载 作者:太空宇宙 更新时间:2023-11-04 12:10:34 26 4
gpt4 key购买 nike

背景

  • 6节点Kafka集群
  • 3 节点 Zookeeper 集群
  • 3 节点 Nimbus 集群
  • Apache Storm Worker 主机使用 amazon spot fleet 动态调整

场景

对于它订阅的给定分区的特定拓扑,Zookeeper 条目如下所示

{"topology":{"id":"Topology_Name-25-1520374231","name":"Topology_Name"},"offset":217233,"partition":0,"broker":{ "host":"Zk_host_name","port":9092},"topic":"topic1"}

现在为了让worker主机访问Zk_host_name,在/etc/hosts文件中的每个worker主机上添加一个映射为ip ZK_host_name

现在我们决定转向由 AWS 提供的名为 Route 53 的 DNS 管理服务。这样就可以设置一个固定名称,比如QA-ZK-Host1,并映射到相应的ip。以便将来可以更改 ip,从而提供灵 active 。

现在,为了保持一致性,需要更改上面的原始条目。因此相应的拓扑被停止,以避免正在进行的偏移量更改和使用 set 命令更改主机名的值。

set/node_path {"topology":{"id":"Topology_Name-25-1520374231","name":"Topology_Name"},"offset":217233,"partition":0,"broker ":{"host":"QA-ZK-Host1","port":9092},"topic":"topic1"}

问题

上面的命令工作正常,路径上的 get 命令给出了更改后的值。但是拓扑重新启动时,旧名称将恢复。那么如何让它在拓扑重启后仍然存在。

最佳答案

您正在引用的对象正在此处写入 Storm 的 Zookeeper https://github.com/apache/storm/blob/master/external/storm-kafka/src/jvm/org/apache/storm/kafka/PartitionManager.java#L341 .

“代理”属性创建于 https://github.com/apache/storm/blob/master/external/storm-kafka/src/jvm/org/apache/storm/kafka/DynamicBrokersReader.java#L186 .可以看到,host属性不是你的Zookeeper主机,而是运行Kafka的主机。该值是从 Kafka 的 Zookeeper 读取的(参见 https://cwiki.apache.org/confluence/display/KAFKA/Kafka+data+structures+in+Zookeeper 的第 3 点)。

如果您想更改该值,您可能需要在 Kafka 中进行。看看http://kafka.apache.org/090/documentation.html (或您使用的任何版本)并搜索“advertised.host.name”,我认为这是您想要更改的设置。

关于linux - 更改 zookeeper 中的 Kafka 主机名条目并在 Storm 拓扑重新启动时保持它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49141135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com