文章目录

  • Zookeeper-安装及基本使用
  • 1.Zookeeper概述
  • 2.Zookeeper集群机制
  • 3.Zookeeper安装
  • 3.1 官网下载zookeeper
  • 3.2 解压
  • 3.3 修改配置文件
  • 3.4 新建文件目录以及控制集群id
  • 3.5 启动zookeeper
  • 3.6 查看主从状态
  • 4.Zookeeper结构和命令
  • 4.1 zookeeper数据结构
  • 4.2 数据结构图
  • 4.3 节点类型
  • 4.3.1.Znode有两种类型
  • 4.3.2.Znode有四种形式的目录节点(默认persistent)
  • 4.3.3.创建Znode时设置顺序标识,Znode名称后悔附加一个值,顺序号是一个单调递增的计数器,由父节点维护
  • 4.4 zookeeper命令行操作
  • 4.4.1 启动客户端
  • 4.4.2 查看使用帮助
  • 4.4.3 连接其他机器zk
  • 4.4.3 创建节点
  • 4.4.4 获取节点信息
  • 4.4.5 设置节点数据
  • 4.4.6 获取数据并监听节点数据变化
  • 4.4.7 监听节点变化(节点改变)
  • 5.Zookeeper集群自动启动脚本
  • startzk.sh


Zookeeper-安装及基本使用

1.Zookeeper概述

 Zookeeper是一个分布式协调服务,就是为用户的分布式应用程序提供协调服务。

  1. zookeeper是为别的分布式程序服务的
  2. zookeeper本身就是一个分布式程序(半数以上节点存在,zk即可正常服务)
  3. zookeeper锁提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务…
  4. 虽然提供各种服务,但是zookeeper在底层其实只提供两个功能
    a. 管理(存储,读取)用户提交的数据
    b. 为用户节点提供数据监听服务
2.Zookeeper集群机制

 半数机制,集群中半数以上机器存活,集群可用。zookeeper适合装在奇数台机器上。

3.Zookeeper安装
3.1 官网下载zookeeper
 镜像地址

windows下zookeeper安装使用 zookeeper的安装_Zookeeper

3.2 解压

 将zookeeper解压到usr/local下

cd /usr/local
tar -zxvf zookeeper-3.3.6.tar.gz
3.3 修改配置文件
cd conf/
cp zoo_sample.cfg zoo.cfg #拷贝一份配置 zoo_sample.cfg本身不生效
vi zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/root/zkdata #数据目录
# the port at which the clients will connect
clientPort=2181 #客户端端口

# 集群配置 半数以上保持运行状态即可
# 2888主从通信端口 3888投票端口
server.1=10.102.150.65:2888:3888   
server.2=10.102.151.43:2888:3888
server.3=10.102.152.51:2888:3888

 ps:集群化软件一般内网提供 所以可以关闭防火墙避免每个服务器控制端口需要多次设置造成的麻烦

3.4 新建文件目录以及控制集群id

 以第一台为例

mkdir /root/zkdata
cd /root/zkdata/
echo 1 > myid(第二台 echo 2 > myid 以此类推)
3.5 启动zookeeper
cd /usr/local/zookeeper-3.3.6
bin/zkServer.sh start
3.6 查看主从状态
bin/zkServer.sh status

windows下zookeeper安装使用 zookeeper的安装_数据_02


windows下zookeeper安装使用 zookeeper的安装_Zookeeper_03

4.Zookeeper结构和命令
4.1 zookeeper数据结构
  1. 层次化的目录结构,明明符合常规文件系统规范
  2. 每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标识
  3. 节点znode可以包含数据和子节点(但EPHEMERAL类型的节点不能再有子节点)
  4. 客户端应用可以在节点上设置监视器
4.2 数据结构图

windows下zookeeper安装使用 zookeeper的安装_Java_04

4.3 节点类型
4.3.1.Znode有两种类型

 短暂(ephemeral)(断开连接自己删除)
 持久(persistent)(断开连接不删除)

4.3.2.Znode有四种形式的目录节点(默认persistent)

 PERSISTENT
 PERSISTENT_SEQUENTIAL(持久序列/test0000000018)
 EPHEMERAL
 EPHEMERAL_SEQUENTIAL

4.3.3.创建Znode时设置顺序标识,Znode名称后悔附加一个值,顺序号是一个单调递增的计数器,由父节点维护
4.4 zookeeper命令行操作
4.4.1 启动客户端
bin/zkCli.sh
4.4.2 查看使用帮助
help

windows下zookeeper安装使用 zookeeper的安装_Linux_05

4.4.3 连接其他机器zk
connection 10.102.150.65

windows下zookeeper安装使用 zookeeper的安装_Java_06

4.4.3 创建节点
create /app1/server1 "10.102.151.43,100"
create -e /app-emphemeral 888888 临时节点
create -s /test/aa 8888 带序号节点

windows下zookeeper安装使用 zookeeper的安装_zookeeper_07

4.4.4 获取节点信息
get /app1/server1

windows下zookeeper安装使用 zookeeper的安装_zookeeper_08

4.4.5 设置节点数据
set /app1/server1 hhh

windows下zookeeper安装使用 zookeeper的安装_Linux_09

4.4.6 获取数据并监听节点数据变化

 get /app1 watch(该监听只生效一次,且不监听该节点子节点变化),此时改变该节点数据,则可监听到该节点数据变化

windows下zookeeper安装使用 zookeeper的安装_zookeeper_10

4.4.7 监听节点变化(节点改变)
ls /app1 watch

windows下zookeeper安装使用 zookeeper的安装_数据_11

5.Zookeeper集群自动启动脚本
startzk.sh
#! /bin/sh
echo "start zkServer..."
ips="10.102.150.65 10.102.150.66 10.102.150.67"  
for i in $ips;  
do  
ssh $i "source /etc/profile;/root/apps/zookeeper-3.3.6/bin/zkServer.sh start"
done

 主服务器配置免密登录其他服务器

ssh-keygen
ssh-copy-id 10.102.151.43