Configuración de un Clúster de ZooKeeper en CentOS 6.5

  1. Descarga y Descompresión

Primero, descarga la distribución de ZooKeeper y extráela en el directorio deseado. Por ejemplo:

tar -xzf zookeeper-3.4.5-cdh5.6.0.tar.gz -C /ruta/a/tu/directorio
  1. Configuración de Variabels de Entorno

Añade las variables de entorno para ZooKeeper a tu archivo ~/.bashrc o /etc/profile.

`[hadoopuser@Linux01 ~]$ vi ~/.bashrc# ZooKeeper configurationexport ZOOKEEPER_HOME=/home/hadoopuser/zookeeper-3.4.5-cdh5.6.0export PATH=$PATH:$ZOOKEEPER_HOME/bin[hadoopuser@Linux01 ~]$ source ~/.bashrc      # Para aplicar los cambios`
  1. Ajuste de la Ubicación de los Logs

Modifica el script zkEnv.sh para especificar la ruta del directorio de logs.

`[hadoopuser@Linux01 ~]$ vi $ZOOKEEPER_HOME/libexec/zkEnv.sh# En la línea ~56, modifica la siguiente sentencia:ZOO_LOG_DIR="$ZOOKEEPER_HOME/logs"`

Nota: En versiones no CDH de ZooKeeper 3.4.8, la ruta del script podría ser bin/zkEnv.sh.

  1. Cnofiguración del Archivo Principal (zoo.cfg)

Edita el archivo zoo.cfg para definir los parámetros del clúster.

`[hadoopuser@Linux01 ~]$ vi $ZOOKEEPER_HOME/conf/zoo.cfg# ZooKeeper core settingstickTime=2000initLimit=10syncLimit=5dataDir=/home/hadoopuser/zookeeper-3.4.5-cdh5.6.0/dataclientPort=2181# Cluster configurationserver.1=node1.example.com:2888:3888server.2=node2.example.com:2888:3888server.3=node3.example.com:2888:3888`

Reemplaza nodeX.example.com con los nombres de host o IPs de tus nodos ZooKeeper.

  1. Creación del Archivo myid

En cada nodo del clúster, crea el directorio de datos y el archivo myid con un identificador único para cada servidor.

  • Nodo 1: ``` mkdir $ZOOKEEPER_HOME/data echo 1 > $ZOOKEEPER_HOME/data/myid
  • Nodo 2: ``` mkdir $ZOOKEEPER_HOME/data echo 2 > $ZOOKEEPER_HOME/data/myid
  • Nodo 3: ``` mkdir $ZOOKEEPER_HOME/data echo 3 > $ZOOKEEPER_HOME/data/myid
    
    
  1. Inicio de los Nodos del Clúster

Inicia el servicio ZooKeeper en cada nodo utilizando el script proporcionado.

`[hadoopuser@Linux01 ~]$ zkServer.sh start`
  1. Verificación del Proceso ZooKeeper

Utiliza el comando jps para confirmar que el proceso QuorumPeerMain está en ejecución en cada nodo.

`[hadoopuser@Linux01 ~]$ jps3051 Jps2829 QuorumPeerMain`
  1. Comprobación del Estado del Servicio

Verifica el rol (leader, follower) de cada servidor en el clúster.

`[hadoopuser@Linux01 ~]$ zkServer.sh statusJMX enabled by defaultUsing config: /home/zero/zookeeper/zookeeper-3.4.5-cdh5.0.1/bin/../conf/zoo.cfgMode: follower`
  1. Descripción de los Parámetros de zoo.cfg

Parámetro Descripción
tickTime Unidad de tiempo base para ZooKeeper. Se utiliza para latidos y timeouts de sesión. El timeout mínimo de sesión es 2 * tickTime.
dataDir Directorio donde ZooKeeper almacena instantáneas de la memoria y el log de transacciones.
clientPort Puerto en el que ZooKeeper escucha las conexiones de los clientes.
initLimit Número máximo de tickTime que un follower puede esperar para conectarse y sincronizarse con el leader. Si se excede, la conexión se considera fallida.
syncLimit Número máximo de tickTime que un follower puede tardar en enviar una solicitud al leader y recibir una respuesta. Ayuda a detectar problemas de latencia en la comunicación.
server.A=B:C:D Define los servidores del clúster. - A: Identificador numérico del servidor (coincide con el valor en myid). - B: Dirección IP o nombre de host del servidor. - C: Puerto para la comunicación entre followers y el leader. - D: Puerto utilizado para la reelección del leader en caso de falo. En configuraciones de pseudo-clúster, este puerto debe ser único para cada instancia.
  1. Comandos Comunes de ZooKeeper

  • Iniciar servicio ZK: bin/zkServer.sh start
  • Ver estado del servicio ZK: bin/zkServer.sh status
  • Detener servicio ZK: bin/zkServer.sh stop
  • Reiniciar servicio ZK: bin/zkServer.sh restart
  • Conectar al servidor: zkCli.sh -server 127.0.0.1:2181
  • Listar nodos raíz: ls /
  • Crear nodo: create /ruta/nodo "valor" (Ej: create /zk/testnode "zz")
  • Obtener contenido de nodo: get /ruta/nodo (Ej: get /zk/testnode)
  • Establecer contenido de nodo: set /ruta/nodo "nuevo_valor" (Ej: set /zk/testnode abc)
  • Eliminar nodo: delete /ruta/nodo (Ej: delete /zk/testnode)

Etiquetas: Zookeeper centos clustering configuration Hadoop

Publicado el 6-17 00:39