1

現在の3台のZooKeeperサーバを3台の新しいZooKeeperサーバに置き換えたい。 ZooKeeperサーバを交換する

  • 変数に新しい動物園を追加、Ambariに

    • 新しい動物園:私が追加した

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

    サービスを再起動し、再起動RMを、まだ私は接続できません。すべての古いZooサーバーをオフにすると、新しいZooに移動できます。私は次のエラーを取得

    飼育係・クライアント動物園-NEW1 -server:

    との新しい動物園サーバー上の「サーバーのセッションIDは0x0から追加のデータを読み取ることができませんが、可能性の高いサーバーは、ソケットを閉じました」ログ(zookeeper.out):

    「例外によるjava.io.IOExceptionのために、セッションは0x0の近く原因:ZooKeeperServerが実行されていません」

    を私は昔の飼育係のいずれかを実行すると、その後、すべてが仕事であります新しいZooKeeperサーバーにも接続できます。

  • 答えて

    0

    これは、動物園で最も重要な特性の1つ、つまりリーダー選挙と関係していると私は推測しています。あなたが3台のサーバーを持つ動物園のクォーラムから始まり、さらに3台のサーバーを追加する場合。クォーラムがアクセス可能になるには、少なくとも4台のサーバーが稼動している必要があります。飼育係ノードがリーダーを選ぶことができなかった場合、それはダウンしているかのように見えます。

    これは、古い飼育係の1人を起動したときにセットアップが機能する理由です。これは、現在6つのうち4つが有効なためです。新しい設定を動作させたい場合は、設定から古いサーバを削除して、クォーラムが新しい3つのサーバだけを知るようにする必要があります。動物園のサーバーを単にシャットダウンしても、それをクォーラムから削除することはできません。