Instalación en una sola máquina o distribuida
Descomprime zookeeper en las rutas correspondientes en diferentes máquinas.
Para una instalación independiente, cambie el bucle for a la IP de su propio host
#!/bin/bash
zootmp=/root/liutao/zookeeper/tmp # zk的目录下的数据目录,需要自己创建,此路径用于存储zookeeper中数据的内存快照、及事物日志文件
zoocfg=/root/liutao/zookeeper/conf/zoo.cfg # zk目录下的配置文件的路径
myid=1
for h7_node in h71 h72 h73;do
ssh -Tq root@$h7_node << EOF
echo $myid
if test -e $zootmp
then
rm -rf $zootmp
mkdir $zootmp
touch $zootmp/myid
echo $myid >> ~/liutao/zookeeper/tmp/myid // zk主机号
else
mkdir $zootmp
touch $zootmp/myid
echo $myid >> ~/liutao/zookeeper/tmp/myid // // zk主机号
fi
if test -e $zoocfg
then
echo "tickTime=2000" > $zoocfg
echo "initLimit=10" >> $zoocfg
echo "syncLimit=5" >> $zoocfg
echo "dataDir=/root/liutao/zookeeper/tmp" >> $zoocfg
echo "clientPort=2181" >> $zoocfg // 2181:对cline端提供服务
echo "server.1=h71:2888:3888" >> $zoocfg // 3888:选举leader使用 , 2888:集群内机器通讯使用(Leader监听此端口)
echo "server.2=h72:2888:3888" >> $zoocfg
echo "server.3=h73:2888:3888" >> $zoocfg
else
touch $zoocfg
echo "tickTime=2000" > $zoocfg
echo "initLimit=10" >> $zoocfg
echo "syncLimit=5" >> $zoocfg
echo "dataDir=/root/liutao/zookeeper/tmp" >> $zoocfg
echo "clientPort=2181" >> $zoocfg
echo "server.1=h71:2888:3888" >> $zoocfg
echo "server.2=h72:2888:3888" >> $zoocfg
echo "server.3=h73:2888:3888" >> $zoocfg
fi
exit
EOF
myid=`expr $myid + 1`
done
Variable ambiental
export ZOOKEEPER_HOME=/root/liutao/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
Comandos comunes
empezar a parar
// 启动zookeeper zkServer.sh start
// 停止zookeeper zkServer.sh stop
// 查看状态:zkServer.sh status
Crear nodo
zkCli.sh 链接本地zk服务器,退出使用quit
create [-s] [-e] path data #其中-s 为有序节点,-e 临时节点,-s会记录每个子节点创建的先后顺序
Cree un nodo persistente y escriba datos, obtenga el comando para obtener datos
Nodos ordenados persistentes y datos de escritura, el nombre del nodo se cambiará a una combinación de nombre y número, la función es crear una ID única
Una vez creado el nodo temporal, salir sale de la sesión, el nodo se elimina automáticamente y el nodo temporal no puede tener nodos secundarios.
Actualizar nodo
El número de versión se actualizará después de que se actualice el nodo.
zkCli.sh 链接本地zk服务器,退出使用quit
set 路径 更新的数据 【当前dataversion,可选】 #
Eliminar nodo
delete path 【当前dataversion,可选】 # 结点有子结点,是不允许删除的
rmr path # 删除该结点以及所有的子结点
Ver nodo
get path # 返回数据和当前结点的属性
stat path # 返回当前结点属性
Descripción de propiedad:
Regresar a la lista de nodos
ls path # 返回当前路径下的所有子结点
ls2 path # 返回当前路径下的所有子结点和当前子结点的属性