1

Ich möchte aktuelle 3 ZooKeeper Server durch 3 neue ZooKeeper Server ersetzen. Ich habe hinzugefügt:Ersetzen Sie ZooKeeper Server

  • neuen Zoo Ambari,
  • neuen Zoo Variablen hinzufügen:

    hbase.zookeeper.quorum ha.zookeeper.quorum zookeeper.connect hadoop.registry.zk.quorum yarn.resourcemanager.zk-address

Restart Dienste, Neustart RM, und noch kann ich nicht verbinden zu einem neuen Zoo, wenn ich alle alten Zoo-Server abstelle.

zookeeper-Client -Server Zoo-new1 Ich erhalte die folgende Fehlermeldung:

"Kann nicht zusätzliche Daten vom Server sessionid 0x0 lesen, wahrscheinlich Server geschlossen socket"

Und auf neuen Zoo-Server in Protokolle (zookeeper.out):

„Ausnahme von Sitzung 0x0 verursacht schließen aufgrund java.io.IOException: ZooKeeperServer nicht aktiv“

Als ich eines der alten Zookeepers laufen, dann ist alles Arbeit Ich kann mich auch mit den neuen ZooKeeper-Servern verbinden.

Antwort

0

Meine beste Vermutung ist, dass dies mit einer der wichtigsten Eigenschaften in Tierpfleger, nämlich Führerwahl zu tun hat. Wenn Sie mit einem Tierpfleger-Quorum mit 3 Servern beginnen und ihm 3 weitere Server hinzufügen. Sie müssen mindestens 4 Server haben, damit das Quorum erreichbar ist. Wenn ein Tierpflegerknoten keinen Anführer wählen konnte, sieht es so aus, als wäre er ausgefallen.

Dies ist auch der Grund, warum dein Setup funktioniert, wenn du einen der alten Tierpfleger startest, denn sie sind jetzt 4 von 6 möglichen lebend. Wenn Sie möchten, dass das neue Setup funktioniert, müssen Sie die alten Server aus der Konfiguration entfernen, damit das Quorum nur die drei neuen kennt. Wenn Sie einen Zoo-Keeper-Server einfach schließen, wird er nicht aus dem Quorum entfernt.