Tutorial de ZooKeeper: ¿Qué es? Architectura de Apache ZooKeeper

¿Qué es un sistema distribuido?

Una aplicación distribuida es una aplicación que puede ejecutarse en varios sistemas de una red. Se ejecuta simultáneamente y se coordina para completar una determinada tarea. Estas tareas pueden llevar muchas horas para que las complete cualquier aplicación no distribuida.

¿Qué es Zookeeper?

Apache Zookeeper es un servicio de coordinación distribuido de código abierto que ayuda a gestionar un gran conjunto de hosts. La gestión y coordinación en un entorno distribuido es complicada. Zookeeper automatiza este proceso y permite a los desarrolladores centrarse en crear funciones de software en lugar de preocuparse por su naturaleza distribuida.

Zookeeper le ayuda a mantener la información de configuración, los nombres y los servicios de grupo para aplicaciones distribuidas. Implementa diferentes protocolos en el clúster para que la aplicación no tenga que implementarlos por sí sola. Proporciona una vista única y coherente de varias máquinas.

¿Por qué Apache Zookeeper?

Aquí hay razones importantes detrás de la popularidad de Zookeeper:

  • Permite la exclusión mutua y la cooperación entre procesos del servidor.
  • Garantiza que su aplicación se ejecute de manera consistente.
  • El proceso de transacción nunca se completa parcialmente. Se le asigna el estado de Éxito o Fracaso. El estado distribuido se puede retrasar, pero nunca está mal
  • Independientemente del servidor al que se conecte, un cliente podrá ver la misma vista del servicio.
  • Le ayuda a codificar los datos según el conjunto específico de reglas.
  • Ayuda a mantener un espacio de nombres jerárquico estándar similar a los archivos y directorios.
  • Computadoras, que funcionan como un sistema único que puede estar conectado local o geográficamente.
  • Permite unir/abandonar un nodo en un clúster y el estado del nodo en tiempo real.
  • Puede aumentar el rendimiento implementando más máquinas
  • Le permite elegir un nodo como líder para una mejor coordinación.
  • ZooKeeper funciona rápido con cargas de trabajo donde las lecturas de datos son más comunes que las escrituras.

guardián del zoológico Architectura: ¿Cómo funciona?

A continuación se ofrece una breve explicación sobre APACHE Arquitectura del guardián del zoológico:

  • Zookeeper sigue un Cliente-Servidor Architectura
  • Todos los sistemas almacenan una copia de los datos.
  • Los líderes se eligen al inicio
ArchiTecnología de ZooKeeper
ArchiTecnología de ZooKeeper

Servidor: El servidor envía un acuse de recibo cuando cualquier cliente se conecta. En el caso de que no haya respuesta del servidor conectado, el cliente redirige automáticamente el mensaje a otro servidor.

Cliente:El cliente es uno de los nodos del clúster de aplicaciones distribuidas. Le ayuda a acceder a la información del servidor. Cada cliente envía un mensaje al servidor a intervalos regulares que le permite saber que el cliente está activo.

Líder: Uno de los servidores es designado Líder. Proporciona toda la información a los clientes, así como un reconocimiento de que el servidor está activo. Realizaría una recuperación automática si alguno de los nodos conectados fallara.

Seguidor: El nodo servidor que sigue las instrucciones del líder se denomina seguidor.

  • Las solicitudes de lectura del cliente son manejadas por el servidor Zookeeper conectado correspondientemente.
  • Las solicitudes de escritura del cliente son manejadas por el líder de Zookeeper.

Conjunto/Cluster: Grupo de servidores Zookeeper que se llama conjunto o ClusterPuede utilizar la infraestructura de ZooKeeper en el modo de clúster para que el sistema tenga el valor óptimo cuando ejecute Apache.

Interfaz de usuario web de ZooKeeper: Si desea trabajar con la gestión de recursos de ZooKeeper, debe utilizar WebUI. Permite trabajar con ZooKeeper usando la interfaz de usuario web, en lugar de usar la línea de comando. Ofrece una comunicación rápida y efectiva con la aplicación ZooKeeper.

El modelo de datos de Zookeeper (ZDM)

Ahora, en este tutorial de ZooKeeper, aprendamos sobre el modelo de datos de Zookeeper. La siguiente figura explica el modelo de datos de Apache Zookeeper:

El modelo de datos de Zookeeper
Modelo de datos del cuidador del zoológico
  • El modelo de datos de Zookeeper sigue un espacio de nombres jerárquico donde cada nodo se denomina ZNode. Un nodo es un sistema donde se ejecuta el clúster.
  • Cada ZNode tiene datos. Puede o no tener hijos.
  • Rutas de nodos Z:
    • Canónico, separado por barras y absoluto
    • No utilizar referencias relativas.
    • Los nombres pueden tener caracteres Unicode
  • ZNode mantiene la estructura de estadísticas y el número de versión para cambios de datos.

Tipos de nodos de Zookeeper

Hay tres tipos de Znodes:

Persistencia znode: este tipo de znode está vivo incluso después de que el cliente que creó ese znode específico se desconecta. De forma predeterminada, en zookeeper, todos los nodos son persistentes si no se especifica.

Efímero znode: este tipo de znode guardián del zoológico está vivo hasta que el cliente está vivo. Por lo tanto, cuando el cliente se desconecta del cuidador del zoológico, también se eliminará. Además, a los nodos efímeros no se les permite tener hijos.

Secuencial znode: los znodes secuenciales pueden ser efímeros o persistentes. Entonces, cuando se crea un nuevo znode como un znode secuencial. Puede asignar la ruta del znode adjuntando un número de secuencia de 10 dígitos al nombre original.

ZDM-Relojes

Zookeeper, un evento de vigilancia es un disparador único que se envía al cliente que configuró la vigilancia. Ocurre cuando cambian los datos de esa vigilancia. La vigilancia de ZDM permite que los clientes reciban notificaciones cuando cambia el znode. Las operaciones de lectura de ZDM como getData(), getChidleren(), tienen la opción de configurar una vigilancia.

Los relojes están ordenados, el orden de los eventos de reloj corresponde al orden de las actualizaciones. Un cliente podrá ver un evento de observación para znode antes de ver los nuevos datos que corresponden a ese znode.

ZDM- Lista de control de acceso

Zookeeper utiliza ACL para controlar el acceso a sus znodes. ACL se compone de un par de (Esquema: identificación, permiso)

Construya en esquemas ACL:

mundo: tiene una sola identificación, cualquiera

autenticación: no utiliza ninguna identificación, representa cualquier usuario autenticado

resumen: use un nombre de usuario: contraseña

host: le permite utilizar el nombre de host del cliente como identidad de identificación de ACL

IP: use la dirección IP del host del cliente como identidad de identificación de ACL

Permisos de ACL:

  • CREAR
  • LEER
  • ESCRIBIR
  • BORRAR
  • ADMIN.

Ex. (IP: 192.168.0.0/16, LEER)

El ZKS: estados de sesión y duración

ZKS – Estados de sesión
ZKS – Estados de sesión
  • Antes de ejecutar cualquier solicitud, es importante que el cliente debe establecer una sesión con el servicio
  • Todas las operaciones que los clientes envían al servicio se asocian automáticamente a una sesión.
  • El cliente puede conectarse a cualquier servidor del clúster, pero solo se conectará a un único servidor.
  • La sesión proporciona “garantías de pedido”. Las solicitudes en la sesión se ejecutan en orden FIFO.
  • Los estados principales de una sesión son 1) Conectando, 2) Conectado 3) Cerrado 4) No conectado.

Cómo instalar ZooKeeper

Paso 1) Haga clic en Continuar para suscribirse
Ve a esto enlace y haga clic en 'Continuar para suscribirse'

Instalar ZooKeeper

Paso 2) Aceptar los términos y condiciones
En la página siguiente, acepte el acuerdo de licencia.

Instalar ZooKeeper

Paso 3) Mensaje de agradecimiento mostrado
Verás el siguiente mensaje

Instalar ZooKeeper

Paso 4) Haga clic en Continuar para configurar
Actualice la página después de 5 minutos y continúe con la configuración.

Instalar ZooKeeper

Paso 5) Haga clic en 'Continuar para iniciar'
En la siguiente pantalla, inicie ZooKeeper

Instalar ZooKeeper

Paso 6) ¡Felicitaciones!
¡Estás listo!

Aplicaciones de Apache ZooKeeper

Apache Zookeeper se utiliza para los siguientes fines:

  • Gestionando la configuración
  • servicios de nombres
  • Elegir al líder
  • Poniendo en cola los mensajes
  • Gestionar el sistema de notificaciones.
  • Synchronización
  • Distributed Cluster Gestionamiento

Empresas que utilizan Zookeeper

  • yahoo
  • Facebook
  • trabajar
  • Twitter
  • Netflix
  • Zynga
  • Nutanix

Desventajas de usar Zookeeper

  • Puede ocurrir pérdida de datos si agrega nuevos servidores Zookeeper
  • No se permite la migración para los usuarios
  • No ofrecer soporte para la ubicación y el conocimiento del rack.
  • Zookeeper no le permite reducir la cantidad de pods para evitar la pérdida accidental de datos
  • No se puede cambiar el servicio a la red de host sin una reinstalación completa cuando el servicio se implementa en una red virtual
  • El servicio no admite cambios en los requisitos de volumen una vez finalizada la implementación inicial
  • Hay una gran cantidad de nodos involucrados, por lo que podría haber más de un punto de falla.
  • Los mensajes se pueden perder en la red de comunicación, lo que requiere un software especial para recuperarlos nuevamente.

Resumen

  • Una aplicación distribuida es una aplicación que puede ejecutarse en múltiples sistemas en una red.
  • Apache Zookeeper es un servicio de coordinación distribuido de código abierto que le ayuda a gestionar un gran conjunto de hosts.
  • Permite la exclusión mutua y la cooperación entre procesos del servidor.
  • Servidor, Cliente, Líder, Seguidor, Conjunto/Cluster, ZooKeeper WebUI son componentes importantes del cuidador del zoológico
  • Tres tipos de Znodes son de persistencia, efímeros y secuenciales.
  • La vigilancia ZDM es un activador único que se envía al cliente que establece la vigilancia. Ocurrió cuando los datos de ese reloj cambian.
  • Zookeeper Hadoop usa ACL para controlar el acceso a sus znodes
  • Gestionar la configuración, Servicios de nombres, seleccionar el líder, Poner en cola los mensajes, Gestionar el sistema de notificaciones, Synccronización, Distribuida Cluster Gestión, etc
  • Yahoo, Facebook, eBay, Twitter, Netflix son algunas empresas conocidas que utilizan zookeeper
  • El principal inconveniente de la herramienta es que puede producirse pérdida si agrega nuevos servidores Zookeeper.