Cómo instalar y configurar Zookeeper en Ubuntu 18.04

Cómo instalar y configurar Zookeeper en Ubuntu 18.04

Zookeeper es un servicio centralizado para mantener la información de configuración, nombrar, proporcionar sincronización distribuida y proporcionar servicios grupales.
Todos estos tipos de servicios se utilizan de una forma u otra mediante aplicaciones distribuidas.

En este artículo, hemos explicado los pasos necesarios para instalar y configurar 3 clúster de zoológico de nodo con un quórum definido en Ubuntu 18.04.

En este tutorial aprenderás:

  • ¿Qué es Zookeeper y su descripción general?.
  • ¿Cuál es la arquitectura de zokeokeeper?.
  • Cómo configurar los hosts de Zookeeper y agregar usuario de Zookeepers.
  • Cómo instalar y configurar Oracle JDK.
  • Cómo configurar y configurar el Zookeeper.
  • Cómo configurar los nodos de trabajadores para unirse al clúster de enjambre.
  • Cómo verificar el clúster y el conjunto de Zookeeper.
Descripción arquitectónica de Zookeeper.

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Ubuntu 18.04
Software Zookeeper-3.4.12, Oracle JDK 1.8.0_192
Otro Acceso privilegiado a su sistema Linux como root o a través del sudo dominio.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Descripción general del cuero



Zookeeper permite que los procesos distribuidos se coordinen entre sí a través de un espacio de nombres jerárquicos compartidos de registros de datos (llamamos a estos registros Znodes), al igual que un sistema de archivos. A diferencia de los sistemas de archivos normales, Zookeeper proporciona a sus clientes un alto rendimiento, bajo latencia, altamente disponible y se ordena el acceso estrictamente ordenado a los Znodes.

Los aspectos de rendimiento de Zookeeper permiten que se use en grandes sistemas distribuidos. Los aspectos de confiabilidad evitan que se convierta en el único punto de falla en los sistemas grandes. Su orden estricto permite implementar primitivas de sincronización sofisticadas en el cliente.

El espacio de nombre proporcionado por Zookeeper es muy parecido al de un sistema de archivos estándar. Un nombre es una secuencia de elementos de ruta separados por un corte ("/"). Cada znode en el espacio de nombre de Zookeeper se identifica mediante una ruta. Y cada znode tiene un padre cuyo ruta es un prefijo del znode con un elemento menos; La excepción a esta regla es la raíz ("/") que no tiene padres. Además, exactamente como los sistemas de archivos estándar, un ZNode no se puede eliminar si tiene hijos.

Zookeeper fue diseñado para almacenar datos de coordinación: información de estado, configuración, información de ubicación, etc.

Arquitectura de Zookeeper

Para un servicio confiable de Zookeeper, debe implementar Zookeeper en un clúster conocido como un conjunto. Mientras la mayoría del conjunto estén activos, el servicio estará disponible. Debido a que Zookeeper requiere una mayoría, es mejor usar un número impar de máquinas. Por ejemplo, con cuatro máquinas, Zookeeper solo puede manejar la falla de una sola máquina; Si dos máquinas fallan, las dos máquinas restantes no constituyen una mayoría. Sin embargo, con cinco máquinas, Zookeeper puede manejar la falla de dos máquinas.

Cada uno de los componentes que forma parte de la arquitectura del Zookeeper se ha explicado a continuación.

  • Cliente - Los clientes, uno de los nodos en nuestro clúster de aplicaciones distribuidas, accede a la información del servidor. Para un intervalo de tiempo en particular, cada cliente envía un mensaje al servidor para que el severa sepa que el cliente está vivo.Del mismo modo, el servidor envía un reconocimiento cuando un cliente se conecta. Si no hay respuesta del servidor conectado, el cliente redirige automáticamente el mensaje a otro servidor.
  • Servidor - El servidor, uno de los nodos en nuestro conjunto Zookeeper, proporciona todos los servicios a los clientes. Otorga reconocimiento al cliente para informar que el servidor está vivo.
  • Líder - Nodo del servidor que realiza una recuperación automática si alguno de los nodos conectados falló. Los líderes son elegidos en la startup de servicio.
  • Seguidor - Nodo del servidor que sigue a la instrucción del líder.

Configurar los hosts Zookeeper y agregar usuario de Zookeeper

Antes de instalar los paquetes de Zookeeper necesarios para la configuración, configuraremos el archivo hosts en todos los nodos de Ubuntu. Después de eso, crearemos un usuario de Zookeeper en los tres nodos a medida que el Daemon Zookeeper sea ejecutarse como choque usuario mismo.



Aquí hemos usado 3 ubuntu 18.04 máquinas.

Nodio Zookeeper1 - 192.168.1.102 (Nombre de host - nodo1) Nodio Zookeeper2 - 192.168.1.103 (nombre de host - nodo2) ZOOKEEPER NODO3 - 192.168.1.105 (nombre de host - nodo3) 

Editar el /etc/huéspedes Archivo en los tres nodos a través de gedit o empuje y hacer los siguientes cambios:

192.168.1.102 nodo1 192.168.1.103 nodo2 192.168.1.105 nodo3 
Copiar

Después de modificar con los detalles anteriores en el archivo hosts, verifique la conectividad con ping entre todos los nodos.

Ahora, crea el nuevo choque usuario y grupo usando el comando:

# Adduser Zookeeper 

Instalar y configurar Oracle JDK

Descargue y extraiga el archivo Java bajo el /optar directorio. Para obtener más información, dirígete a cómo instalar Java en Ubuntu 18.04.

Para establecer el JDK 1.8 Actualización 192 Como JVM predeterminado, usaremos los siguientes comandos:

# Update-Alternatives --install/usr/bin/java java/opt/jdk1.8.0_192/bin/java 100 # # update-alternativo --install/usr/bin/javac javac/opt/jdk1.8.0_192/bin/javac 100 

Después de la instalación para verificar que el Java se haya configurado correctamente, ejecute los siguientes comandos:

# Update-Alternatives-Dislay Java # Update-Alternatives--Dislay Javac 

Para verificar la versión Java, ejecute los siguientes comandos:

# java -version 

Tras una instalación exitosa, obtendrá la siguiente información:

Versión de Java "1.8.0_192 "Java (TM) SE Runtime Environment (Build 1.8.0_192-B12) Java Hotspot (TM) VM de 64 bits (Build 25.192-B12, modo mixto) 


Configurar y configurar el Zookeeper

Descargue y descomprima el paquete Zookeeper del archivo oficial de Apache en las tres máquinas Ubuntu como se muestra a continuación:

$ wget https: // www-us.apache.org/Dist/Zookeeper/Stable/Zookeeper-3.4.12.alquitrán.GZ 
$ TAR -XZVF ZOOKEEPER -3.4.12.alquitrán.GZ 

Editar el bashrc Para el usuario de Zookeeper a través de la configuración de las siguientes variables de entorno de Zookeeper.

Exportar zoo_log_dir =/var/log/Zookeeper 

Fuente el .BASHRC en la sesión de inicio de sesión actual:

$ fuente ~/.bashrc 

Ahora, crea el directorio choque bajo /var/lib carpeta que servirá como directorio de datos de Zookeeper y creará otro choque directorio bajo /var/log Donde se capturarán todos los registros de zoológico. Ambos de la propiedad del directorio deben cambiarse como Zookeeper.

$ sudo mkdir/var/lib/Zookeeper; CD /VAR /LIB; Sudo Chown Zookeeper: Zookeeper Zookeeper/$ sudo mkdir/var/log/Zookeeper; CD /VAR /LOG; Sudo Chown Zookeeper: Zookeeper Zookeeper/ 

Crea la ID de servidor para el conjunto. Cada servidor Zookeeper debe tener un número único en el mi identificación Archivo dentro del conjunto y debe tener un valor entre 1 y 255.

En nodo1

$ sudo sh -c "echo '1'>/var/lib/Zookeeper/myid" 

En nodo2

$ sudo sh -c "echo '2'>/var/lib/Zookeeper/myid" 

En nodo3

$ sudo sh -c "echo '3'>/var/lib/Zookeeper/myid" 

Ahora, vaya a la carpeta Conf bajo el directorio de inicio de Zookeeper (ubicación del directorio de Zookeeper después de que el archivo haya sido descomprimido/extraído).

$ CD/HOME/ZOOKEEPER/ZOOKEEPER-3.4.13/conf/ 


Zookeeper@node1: ~/Zookeeper-3.4.13/conf $ ls -lrth Total 16k -rw-r-r-- 1 Zookeeper Zookeeper 922 29 de junio 21:04 Zoo_Sample.CFG -RW-R-R-- 1 ZOOKEEPER ZOOKEEPER 535 29 de junio 21:04 Configuración.XSL -RW-R-R-- 1 ZOOKEEPER ZOOKEEPER 999 24 de noviembre 18:29 Zoo.CFG -RW-R-R-- 1 ZOOKEEPER ZOOKEEPER 2.2k 24 de noviembre 19:07 log4j.propiedades 
Copiar

Por defecto, un archivo conf conf con nombre zoológico.CFG estará presente en confusión directorio. Necesitas hacer una copia con nombre zoo.CFG como se muestra a continuación y edite nuevo zoo.CFG Como se describe en las tres máquinas Ubuntu.

$ cp zoo_sample.zoológico de CFG.CFG 
$ LS -LRTH/HOME/ZOOKEEPER/ZOOKEEPER -3.4.13/Conf Total 16K -RW-R-R-- 1 Zookeeper Zookeeper 922 Jun 29 21:04 Zoo_Sample.CFG -RW-R-R-- 1 ZOOKEEPER ZOOKEEPER 535 29 de junio 21:04 Configuración.XSL -RW-R-R-- 1 ZOOKEEPER ZOOKEEPER 999 24 de noviembre 18:29 Zoo.CFG -RW-R-R-- 1 ZOOKEEPER ZOOKEEPER 2.2k 24 de noviembre 19:07 log4j.propiedades 
Copiar
$ Vim/Home/Zookeeper/Zookeeper-3.4.13/conf/zoológico.CFG 
datadir =/var/lib/Zookeeper Server.1 = nodo1: 2888: 3888 servidor.2 = nodo2: 2888: 3888 servidor.3 = nodo3: 2888: 3888 
Copiar

Cambios de configuración de Zookeeper.



Ahora, haga los siguientes cambios en log4.propiedades Archivo de la siguiente manera.

$ Vim/Home/Zookeeper/Zookeeper-3.4.13/conf/log4j.propiedades 
choque.registro.dir =/var/log/ZOOKEEPER ZOOKEEPER.tracelog.dir =/var/log/ZOOKEEPER LOG4J.rootLogger = info, consola, archivo Rolling 
Copiar

Cambios de configuración de ZOOKEEPER LOG4J.

Después de que se haya realizado la configuración en zoo.CFG Archivo en los tres nodos, inicie Zookeeper en los tres nodos uno por uno, usando el siguiente comando:

$/HOME/ZOOKEEPER/ZOOKEEPER-3.4.13/bin/zkserver.SH Start 

Servicio de Zookeeper comienza en los tres nodos.

El archivo de registro se creará en /var/log/Zookeeper de Zookeeper nombrado choque.registro, Tail el archivo para ver registros de cualquier error.

$ tail -f/var/log/ZOOKEEPER/ZOOKEEPER.registro 


Verifique el clúster y el conjunto de Zookeeper

En el conjunto de Zookeeper de tres servidores, uno estará en modo líder y otros dos estarán en modo de seguidor. Puede verificar el estado ejecutando los siguientes comandos.

$/HOME/ZOOKEEPER/ZOOKEEPER-3.4.13/bin/zkserver.Estado de SH 

Cheque de estado del servicio de chokeeper.

$ Echo Stat | NC NODO1 2181 

Enumera detalles breves para el servidor y los clientes conectados.

$ Echo mntr | NC NODO1 2181 

Lista de variables con coscokeeper para el monitoreo de la salud del clúster.



$ Echo Srvr | NC Localhost 2181 

Enumera los detalles completos para el servidor Zookeeper.

Si necesita verificar y ver el ZNode, puede conectarse utilizando el siguiente comando en cualquiera de los nodos Zookeeper:

$/HOME/ZOOKEEPER/ZOOKEEPER-3.4.13/bin/zkcli.sh -server 'hostname -f': 2181 

Conéctese al nodo de datos Zookeeper y enumera el contenido.

Conclusión

Se ha convertido en una de las opciones más preferidas para crear sistemas distribuidos altamente disponibles a escala. El proyecto Zookeeper es uno de los proyectos más exitosos de la Fundación Apache, ha obtenido una amplia adopción de las principales compañías, entregando numerosos beneficios relacionados con Big Data.

Proporcionando una base sólida para implementar diferentes herramientas de big data, Apache Zookeeper ha permitido a las empresas funcionar sin problemas en el mundo de Big Data. Su capacidad para proporcionar múltiples beneficios a la vez lo ha convertido en una de las aplicaciones más preferidas que se implementará a gran escala.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Cómo crear un clúster de Kubernetes
  • Cómo instalar Kubernetes en Ubuntu 20.04 fossa focal Linux
  • Cómo instalar Kubernetes en Ubuntu 22.04 Jellyfish de Jammy ..
  • Instalación de Oracle Java en Ubuntu 20.04 fossa focal Linux
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Linux: instalar Java
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Oracle Linux vs Red Hat (Rhel)
  • Mastering Bash Script Loops