Cuidador del zoológico de implementar

I. Visión general

1.1 Introducción

Zookeeper es un código abierto, distribuido, proporcionado un servicio de coordinación del proyecto Apache para aplicaciones distribuidas

1.2, el mecanismo de trabajo

el modo empleado del zoológico desde el punto de vista de entender el diseño: es una gestión distribuida marco observador patrón de diseño basado en el servicio, que es responsable del almacenamiento y manejo de preocupación para todos los datos, y luego aceptar el registro del observador, una vez que el estado de estos datos va a cambiar Zookeeper ha sido responsable de notificar al Zookeeper. las registradas en el observador reaccionar en consecuencia.

1.3 Características

1) Zookeeper: un grupo que consta de un líder (líder), más seguidores (seguidor).
2) Mientras más de la mitad de la supervivencia nodos de clúster, racimo Zookeeper será capaz de servicio normal.
Consistente 3) datos globales: Cada servidor de retener una copia idéntica de los datos, el cliente, independientemente de que se conectan al servidor, los datos son consistentes.
4) solicitud de actualización secuencial, la solicitud de actualización desde el mismo cliente se ejecutan en el orden en que fueron enviados.
5) atomicidad de actualización de datos, una actualización de datos, ya sea éxito o fracasan.
6) en tiempo real, dentro de un determinado período de tiempo, el cliente puede leer los datos más recientes.

1.4 Estructura de Datos

ZooKeeper estructura modelo de datos y archivos de Unix sistemas son similares, el conjunto puede ser visto como un árbol, cada nodo se denomina ZNode. Cada 1 MB predeterminado ZNode capaz de almacenar datos, cada ZNode se identifican de manera única por su camino.
znode un total de cuatro tipos: persistentes (persistentes), temporal (efímeras), con una duración ordenó (persistent_sequential) y ordenó temporalmente (ephemeral_sequential).

1.5, escenarios de aplicación

Los servicios proporcionados incluyen: servicios de nombres unificado, gestión de la configuración unificada, gestión de cluster unificado, nodo de servidor dinámico en línea, balanceo de carga suave.

1,6, que se utiliza en combinación con otros componentes

Metadatos en HBase, ZooKeeper de los principales nodos de un clúster de elección para realizar un seguimiento de servidor disponible y guardar el clúster: HBase
Kafka: En Kafka, ZooKeeper para detectar un choque, para darse cuenta de las conclusiones del tema (tema) y mantener los temas de estado de producción y consumo

, El despliegue segundo cluster

Premise
① nodos de clúster menos la mitad de la supervivencia, el número de grupos es preferiblemente un número impar, un mínimo de tres
② Cada clúster de servidor debe instalar el JDK
③ nodos tiempo / tiempo de sincronización zona
④ interior libre estanco de la agrupación
⑤ modificar el nombre de host del local y de análisis sintáctico

Planificación clúster: Zookeeper desplegado en el nodo 1, el nodo 2, nodo3 tres nodos

2.1, la instalación de JDK

Desinstalar la versión antigua

rpm -qa | grep openjdk | xargs rpm -e --nodeps

Crear un directorio de instalación

mkdir -p /usr/lib/jvm/jdk1.8.0_73

instalar

tar -xvzf jdk-8u73-linux-x64.tar.gz -C /usr/lib/jvm

Añadir la variable de entorno en el archivo / etc / profile en

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_73
export JRE_HOME=/usr/lib/jvm/jdk1.8.0_73/jre
export CLASSPATH=.:/usr/lib/jvm/jdk1.8.0_73/lib:/usr/lib/jvm/jdk1.8.0_73/jre/lib
export PATH=$PATH:/usr/lib/jvm/jdk1.8.0_73/bin

La relectura de variables de entorno

source /etc/profile

2,2, ZK de montaje (cada grupo de nodos)

Para extraer el directorio de instalación

tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/

Crear un directorio zkData

mkdir -p /opt/zookeeper-3.4.9/data

La creación de archivos myid, añadir el número del servidor correspondiente en el archivo

echo "1" > /opt/zookeeper-3.4.9/data/myid

2.3, modificar el archivo de configuración (los nodos del clúster)

Rebautizado /opt/zookeeper-3.4.9/conf este directorio es zoo_sample.cfg zoo.cfg

mv zoo_sample.cfg zoo.cfg

Modificar el directorio de almacenamiento de datos

dataDir=/opt/zookeeper-3.4.9/data
dataLogDir=/opt/zookeeper-3.4.9/logs

Añadir la siguiente configuración

server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

#此处的1为data目录下myid的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
#node1为zk节点的主机名,前提是已经做好本地解析
#2888是follower与leader交换信息的端口
#3888是用于执行选举leader时相互通信的端口
#ZooKeeper服务器在启动时从一个名为zoo.cfg的配置文件读取所有 选项,多个服务器如果角色相似,同时基本配置信息一样,就可以共享 一个文件。data目录下的myid文件用于区分各个服务器,对每个服务器 来说,data目录必须是唯一的,因此这个目录可以更加方便地保存一些 差异化文件。服务器ID将myid文件作为一个索引引入到配置文件中。

otras configuraciones

tickTime =2000 #通信心跳数,Zookeeper服务器与客户端心跳时间,单位毫秒
initLimit =10 #LF初始通信时限
syncLimit =5 #LF同步通信时限
clientPort =2181 #客户端连接端口

ZK modificar el directorio de almacenamiento de registro: zkEnv.sh

sed -i 's/ZOO_LOG_DIR="."/ZOO_LOG_DIR="\/opt\/zookeeper-3.4.9\/logs"/g' /opt/zookeeper-3.4.9/bin/zkEnv.sh 
sed -i 's/ZOO_LOG4J_PROP="INFO,CONSOLE"/ZOO_LOG4J_PROP="DEBUG,ROLLINGFILE"/g' /opt/zookeeper-3.4.9/bin/zkEnv.sh

ZK modificar el archivo de configuración de log4j: log4j.properties

sed -i 's/zookeeper.root.logger=INFO, CONSOLE/zookeeper.root.logger=INFO, ROLLINGFILE/g' /opt/zookeeper-3.4.9/conf/log4j.properties 
sed -i 's/zookeeper.log.dir=./zookeeper.log.dir=\/opt\/zookeeper-3.4.9\/logs/g' /opt/zookeeper-3.4.9/conf/log4j.properties 
sed -i 's/zookeeper.tracelog.dir=./zookeeper.tracelog.dir=\/opt\/zookeeper-3.4.9\/logs/g' /opt/zookeeper-3.4.9/conf/log4j.properties 

2.4, iniciar (cada nodo en el cluster)

/opt/zookeeper-3.4.9/bin/zkServer.sh start-foreground

zkServer.sh parámetro de guión
puesta en primer plano: Los tiempos están empezando a ver nada inusual, pero también pueden ver anomalías durante el funcionamiento.
imprimir-cmd: Compruebe cada parámetro empleado del zoológico se inicia, y similares que comprende una ruta de Java

2.5, ver el estado

[root@node1 zookeeper-3.4.9]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: leader

En tercer lugar, basado en el despliegue de la ventana acoplable autónomo

3.1, cargador de muelle de composición del cargador de muelle e instalar

Extraer el paquete de instalación

tar zxvf docker-18.09.8.tgz

instalar

mv docker/* /usr/bin/ 
mkdir /etc/docker 
cp daemon.json /etc/docker/daemon.json 
cp docker.service /usr/lib/systemd/system/docker.service 

Instalación de composición del cargador de muelle

cp docker-compose/docker-compose /usr/local/bin/ 
chmod +x /usr/local/bin/docker-compose 

Inicio y fijar la bota

systemctl daemon-reload 
systemctl start docker 
systemctl enable docker
systemctl restart docker

3.2, la introducción de zookeeper espejo

docker load -i zookeeper-3.4.9_20191008.tar

3.3, el archivo de cargador de muelle-compose.yml listo

version: '2'

services:
   zookeeper:
    image: zookeeper:3.4.9
    restart: always
    container_name: zookeeper
    ports:
    - 2181:2181
    environment:
      ZOO_IP: 192.168.143.200
      ZOO_MY_ID: 1
    volumes:
    - "/home/data/zookeeper/data:/opt/zookeeper-3.4.9/data"
    - "/home/data/zookeeper/logs:/opt/zookeeper-3.4.9/logs"
    - "/etc/localtime:/etc/localtime:ro"
    - "/etc/timezone:/etc/timezone:ro"
    network_mode: "host"

① recipiente está expuesta al puerto 2181 al puerto 2181 del host
el directorio de datos lógicos y de registro está montado ②
③ montar recipiente hora local y la zona horaria del archivo anfitrión
④ red contenedores anfitrión

3.4, iniciar empleado del zoológico espejo

docker-compose -f docker-compose.yml up -d

3.5, cheque

Compruebe el estado del buque

[root@master home]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
e4685488115a        zookeeper:3.4.9     "/opt/zookeeper-3.4.…"   12 minutes ago      Up 12 minutes                           zookeeper

Compruebe el interior del recipiente empleado del zoológico

[root@master home]# docker exec -it e4685488115a /bin/bash
[root@master /]# ps afx
   PID TTY      STAT   TIME COMMAND
   122 pts/0    Ss     0:00 /bin/bash
   135 pts/0    R+     0:00  \_ ps afx
     1 ?        Ssl    0:01 /opt/jdk1.8.0_73/bin/java -Dzookeeper.log.dir=/opt/zookeeper-3.4.9/logs -Dzookeeper.root.logger=DEBUG,ROLLI
[root@master /]# jps
1 QuorumPeerMain
136 Jps

Anfitrión inspección en el puerto de escucha

[root@master home]# netstat -tanlp | grep java
tcp6       0      0 :::41309                :::*                    LISTEN      5850/java           
tcp6       0      0 :::2181                 :::*                    LISTEN      5850/java  

Cuatro, gestión Zookeeper comando de cuatro caracteres

4.1, modificar el soporte de archivos de configuración de comandos de cuatro caracteres

Zookeeper ofrece una serie de comandos de cuatro palabras para vigilar su ejecución, agregue la siguiente configuración en el comando de cuatro caracteres abrir el archivo de lista blanca zoo.cfg inferior
4lw.commands.whitelist = * # 4 todos los comandos de palabra puede ser usada

4.2, de cuatro caracteres Resumen de los comandos

conf: configuración detallada de los servicios relacionados con la producción.
Contras: Lista todos los detalles de conexión de la conexión / sesión al servidor para todos los clientes. El número de paquetes que incluyen la "recepción / transmisión", id de sesión, el retardo de funcionamiento, la última operación se realiza así sucesivamente.
volcado: la salida de todos los mensajes que esperan en la cola de la sesión y los nodos provisionales, este comando se ejecuta para el líder.
ENVI: Prints detalla información sobre el entorno de servicio (diferente del comando conf).
REQS: lista de peticiones sin tratar
RUOK: Servicios de prueba se encuentran en el estado correcto. Si es así, entonces el servicio devuelve "imok", de lo contrario no tiene correspondiente.
El dato: lista de salida en el rendimiento y la conexión del cliente.
CMEH: listas de vigilancia de información de resumen del servidor.
WCHC: Para obtener más información de reloj de servidor de listas de sesión, su salida es una lista de reloj relacionado la sesión.
WCHP: Para obtener más información sobre el servidor reloj lista a través de la ruta de acceso. Se da salida a un camino asociado con la sesión.
mntr: La salida es más detallada que las estadísticas del servidor comando stat
CRST: reposición de la orden funcionales todas las estadísticas de conexión

Ejemplo: Para obtener más información de configuración del servidor de salida, con el CN
[la raíz @ Master Home] NC # yum install -Y
Cuidador del zoológico de implementar
ejemplo: estadísticas del servidor de salida
Cuidador del zoológico de implementar

Artículo de referencia:
http://zookeeper.apache.org/doc/r3.4.14/zookeeperAdmin.html
"ZooKeeper: Distributed tecnología de proceso de colaboración a explicar"

Supongo que te gusta

Origin blog.51cto.com/jiayimeng/2485465
Recomendado
Clasificación