一連のHbaseノードの調整にzookeeperを使用する場合、zookeeperはHbaseノードと同じノードに格納できますか、それとも別のクラスターに格納する必要がありますか?また、私が明確に理解できないことの1つは、Zookeeper znodeがいつ作成されるのか、そしてzookeeper znodeの目的は何ですか?Zookeeperの公式サイトによると、これらはzookeeperファイルシステムの一部であるため、zookeeper znodeは正確に何を保存するために使用されますか?それは構成プロパティ、アプリケーションデータ、または正確にどのコンテンツですか?
3 に答える
hbase と同じノードで Zookeeper を実行できますが、パフォーマンス上の理由から、別のノードで Zookeeper を実行することをお勧めします。hbaseのドキュメントによると、
1 つのノードのみで構成される ZooKeeper アンサンブルを実行できますが、実稼働環境では、3、5、または 7 台のマシンで ZooKeeper アンサンブルを実行することをお勧めします。アンサンブルのメンバーが多いほど、ホストの障害に対するアンサンブルの耐性が高くなります。また、奇数のマシンを実行します。メンバーの数が偶数の場合、定足数はありません。各 ZooKeeper サーバーに約 1 GB の RAM を割り当て、可能であれば専用のディスクを用意します (専用ディスクは、パフォーマンスの高い ZooKeeper アンサンブルを確保するためにできる最善の方法です)。非常に負荷の高いクラスターの場合、ZooKeeper サーバーを RegionServer (DataNode および TaskTracker) とは別のマシンで実行します。
hbase が Zookeeper を使用する方法のいくつかをここで見ることができます。
Hbase マスター サーバーは、zookeeper znode /hbase を作成します。これは、hbase デーモンが調整するために使用されます。アクティブな Hbase マスターの名前もここに格納されます。hbase マスターが停止すると、バックアップの hbase マスターが znode の内容を上書きして、クライアントとリージョン サーバーが新しいマスターを認識できるようにします。これとは別に、リージョン情報は Zookeeper znode でも維持されます。