Tutorial de 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 este 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.
  • La sincronizaciรณn
  • Distribuido Cluster Gestionamiento

Empresas que utilizan Zookeeper

  • yahoo
  • Facebook
  • eBay
  • 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.

Resumir este post con: