Me he encontrado con esto al describir la configuración de Zookeeper para HBase, y no estoy familiarizado con el término. ¿La 'N' tiene algo que ver con la cantidad de nodos en mi clúster HBase? ¿O la cantidad de nodos que debería usar en mi clúster de Zookeeper?¿qué significa 2n + 1 quórum?
Respuesta
2f + 1 se refiere al nivel de confiabilidad/disponibilidad que necesita, en general no está relacionado con el rendimiento.
Los conjuntos de ZooKeeper (clusters de servicio) se componen de uno o más servidores que "votan" en cada cambio. Se requiere que la mayoría de los servidores originales "aprueben" cualquier cambio antes de ser aceptado. Los clientes (hbase en este caso) se conectan al conjunto y lo utilizan para coordinar. Si el conjunto está activo, los clientes pueden hacer esto, si el conjunto está inactivo, hbase no puede usar el servicio.
Supongamos que tiene 3 servidores (f = 1) en el conjunto, si uno falla, el servicio sigue activo (2 es la mayoría). Sin embargo, si falla un segundo servidor, el servicio estaría inactivo.
Supongamos que tiene 5 servidores (f = 2) en el conjunto. En este caso, dos servidores pueden fallar (3 es la mayoría) y el servicio aún está activo.
Normalmente, 3 servidores son más que suficientes. Sin embargo, para los entornos de producción en línea, sugiero 5. ¿Por qué? Supongamos que retira un servidor para el mantenimiento programado. Si tiene 5 servidores, puede mantenerse activo incluso si uno de los servidores activos restantes falla inesperadamente.
¿Por qué no tener 101 servidores? - TANSTAAFL. Vea el gráfico aquí. ZK es un servicio basado en el quórum. A medida que aumenta el número de servidores, el rendimiento de escritura disminuye. Se requieren más servidores para participar en el proceso de turno (votación). Como resultado, el tiempo de escritura/seg disminuye. (leer no se ve afectado)
n
se refiere a la cantidad de fallas que el sistema puede experimentar pero que aún puede funcionar con al menos la mayoría de los nodos. Dos ejemplos:
n = 1
- un nodo puede fallar, de un total de nodos 2n+1 = 3
n = 2
- dos nodos pueden fallar, de un total de nodos 2n+1 = 5
y así sucesivamente!
- 1. ¿Qué significa 1. # INF00, -1. # IND00 y -1. # IND significa?
- 2. ¿Qué significa BUNDLE_DISABLE_SHARED_GEMS: '1'?
- 3. ¿Qué significa _ITERATOR_DEBUG_LEVEL = 1?
- 4. Ruby: ¿Qué significa $ 1?
- 5. ¿Qué significa varchar (-1)?
- 6. ¿Qué significa "1"? significa en Perl?
- 7. ¿Qué significa "escalares filtrados: 1" significa?
- 8. ¿Qué significa "- [1,]" en "if (! - [1,] &&! Window.XMLHttpRequest)"?
- 9. ¿Qué significa $ 1 en Perl?
- 10. ¿Qué significa "$ 1/*" en "para archivo en $ 1/*"
- 11. ¿Qué significa INT (1) en MySQL?
- 12. ¿Qué significa locals() ['_ [1]'] en Python?
- 13. ¿Qué significa "O (1) access time"?
- 14. ¿Qué significa `1..something` en JavaScript?
- 15. ¿Qué significa! 1 y! 0 en Javascript?
- 16. ¿Qué significa "WHERE 1" en SQL?
- 17. ¿Cómo puedo demostrar que Chomsky derivaciones en forma normal requieren 2n - 1 pasos?
- 18. Evitar división de cerebro, votos y quórum
- 19. ¿Qué significa "1" al final de una declaración php print_r?
- 20. Ruby: ¿Qué significa el fragmento: (num & 1) == 0 exactamente hacer?
- 21. ¿Qué significa error de coma flotante -1. # J?
- 22. ¿Qué significa un rango de 2 ..- 1? (Ruby koans about_arrays.rb)
- 23. ¿Qué significa la cláusula de SQL "GROUP BY 1"?
- 24. ¿Qué significa la coordenada 1/w en gl_FragCoord?
- 25. ¿Qué significa $ 1, $ 2, etc. en Expresiones regulares?
- 26. ¿Qué significa un color negativo (-1, -2) en PowerBuilder?
- 27. ¿Qué significa esto: O (n) pasos y O (1) espacio?
- 28. ¿Qué significa "% 1 $ #" cuando se usa en String.format (Java)?
- 29. ¿Qué significa "babosa" significa
- 30. ¿Qué significa ('../') significa?
para aclarar la respuesta de Chris Bunch, los nodos son nodos Zookeeper así que 2n + 1 significa que necesita 2n + 1 nodos Zookeepr para sobrevivir n nodos Zookeeper fallados. –