2010-11-19 20 views
5

Je suis tombé sur ceci en décrivant la configuration de Zookeeper pour HBase, et je ne suis pas familier avec le terme. Est-ce que le 'N' a quelque chose à voir avec le nombre de nœuds dans mon cluster HBase? Ou le nombre de nœuds que je devrais utiliser dans mon cluster Zookeeper?que signifie le quorum 2n + 1?

Répondre

6

2f + 1 se réfère au niveau de fiabilité/disponibilité dont vous avez besoin, en général, il n'est pas lié à la performance. Les ensembles ZooKeeper (grappes de desserte) sont constitués d'un ou de plusieurs serveurs qui «votent» à chaque changement. La majorité des serveurs d'origine doivent «approuver» tout changement avant qu'il ne soit accepté. Les clients (hbase dans ce cas) se connectent à l'ensemble et l'utilisent pour se coordonner. Si l'ensemble est en place, les clients peuvent le faire, si l'ensemble est en panne, alors hbase est incapable d'utiliser le service.

Disons que vous avez 3 serveurs (f = 1) dans l'ensemble, si l'un échoue, le service est toujours actif (2 est majoritaire). Cependant, si un second serveur tombe en panne, le service sera arrêté.

Disons que vous avez 5 serveurs (f = 2) dans l'ensemble. Dans ce cas, deux serveurs peuvent échouer (3 est une majorité) et le service est toujours actif.

Typiquement, 3 serveurs sont plus que suffisants. Cependant, pour les environnements de production de production en ligne, je suggérerais 5. Pourquoi? Supposons que vous preniez un serveur pour une maintenance planifiée. Si vous avez 5 serveurs, vous pouvez rester en haut même si l'un des serveurs actifs restants échoue de façon inattendue. Pourquoi ne pas avoir 101 serveurs alors? - TANSTAAFL. Voir le graphique ici. ZK est un service basé sur le quorum. Lorsque le nombre de serveurs augmente, les performances d'écriture diminuent. Davantage de serveurs sont requis pour participer au processus quroum (vote). Par conséquent, les opérations d'écriture/s diminuent. (lire est inefficace cependant).

4

n fait référence au nombre d'échecs que le système peut rencontrer tout en étant capable de fonctionner avec au moins une majorité de nœuds. Deux exemples:

n = 1 - un nœud peut échouer sur un total de 2n+1 = 3 nœuds

n = 2 - deux nœuds peut échouer sur un total de 2n+1 = 5 nœuds

Et ainsi de suite!

+1

Pour clarifier la réponse de Chris Bunch, les nœuds sont des nœuds Zookeeper donc 2n + 1 signifie que vous avez besoin de 2n + 1 nœuds Zookeepr pour survivre n nœuds Zookeeper échoués. –