Apache y las bases de datos NoSQL empleado del zoológico

Un gran grupo de bases de datos NoSQL es una cosa difícil de manejar para gestionar. Apache Zookeeper al rescate! Hacer un seguimiento de qué nodos están en el clúster, los datos que cada uno es administrar y velar por que los nuevos maestros se seleccionan cuando un maestro falla no son tareas fáciles.

La coordinación de grandes sistemas distribuidos es, por lo tanto, muy difícil. Tanto Hadoop y bases de datos NoSQL distribuidos necesitan una manera de administrar la configuración de un clúster entero. Este proceso también tiene que ser altamente disponible, así que no es un punto único de fallo en el sistema global.

Aquí es donde entra en juego Apache Zookeeper. Zookeeper proporciona una distribución, servicio de coordinación transaccionalmente coherente.

Varios otros productos utilizan Zookeeper para la gestión de clúster:

  • Hadoop

  • Solr Nube


  • Neo4j

  • Accumulo

  • HBase

  • Rackspace

  • Zynga

  • Yahoo! (para varios de sus servicios)

Zookeeper proporciona una estructura de almacenamiento jerárquico en memoria que es similar a un sistema de archivos del ordenador. Esta estructura es administrado por el maestro Zookeeper actual y replica entre los otros nodos del clúster. Un clúster Zookeeper se llama Zookeeper ensemble.


Sólo el maestro gestiona actualizaciones (escribe) a almacenamiento. Estos cambios se checkpoints en disco para que sean duraderos y luego replicado en las otras instancias Zookeeper en el conjunto.

Estos servicios almacenan sus datos de configuración del clúster en Zookeeper. Algunos de ellos almacenar los rangos de teclado para fragmentos de su base de datos, también. Esto permite a los clientes que están utilizando una base de datos NoSQL que utiliza Zookeeper para comunicarse con cualquier servidor Zookeeper en el conjunto. De esta manera, los clientes pueden descubrir qué servidores NoSQL mantienen los datos que les interesa.

Mirando hacia arriba qué nodo tiendas que rango de teclas minimiza la carga en los servidores de NoSQL, porque no tienen que enviar las solicitudes de datos de un nodo NoSQL al nodo que en realidad contiene los datos.

También puede utilizar el almacenamiento de datos de Zookeeper para el almacenamiento efímero (almacenamiento que no durará más allá de un reinicio del servicio), que es útil para el almacenamiento de sesión u otros datos de tiempo de ejecución.

Servidores Zookeeper utilizan este almacenamiento efímero para determinar quién se hace cargo si un maestro falla. Cada servidor crea un znode efímera numerada (archivo de almacenamiento) en el espacio de claves. Si el maestro Zookeeper (líder) sufre un fallo de hardware, entonces el dueño de la próxima znode en la secuencia se convierte en el maestro. Esta es una solución elegante y evita la " manada " efecto en el que todos los servidores se comunican frenéticamente entre sí por unos segundos para seleccionar un nuevo amo.

Zookeeper es una gran solución de Java a los problemas inherentes a la gestión de los sistemas de coordinación y de alta disponibilidad. Se puede utilizar para implementar servicios de alta disponibilidad, incluidos los servicios de mensajería. Así pues, si usted necesita para crear un nuevo servicio distribuido, considere el uso Zookeeper.


» » » » Apache y las bases de datos NoSQL empleado del zoológico