- zk安装
1.下载安装包 weget https://downloads.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz (wget是一个下载指令,后面可以跟下载连接去从服务器上下载东西;也可以先下载到windows上,再通过xftp传上去。)
2.解压 tar.gz文件指令:tar -zxvf 文件名 tar -xvf apache-zookeeper-3.6.3-bin.tar.gz 解压完成后: 移动: mv + 文件名 要移动的地址+移动后的文件名 去掉要移动的地址,也可以作为改名指令
复制指令:cp 查看程序是否运行:ps -ef | grep +程序名
#创建zk数据文件夹 mkdir data mkdir logs
3.修改配置文件 cd conf/ #复制zookeeper的配置模板 cp zoo_sample.cfg zoo.cfg #修改配置文件,dataDir改为刚才创建的data目录 vim zoo.cfg #注释掉原来的 dataDir=/temp/zookeeper 添加下面两行 dataDir=/usr/local/zookeeper-3.6.3/data dataDir=/usr/local/zookeeper-3.6.3/logs
修改系统配置文件 conf文件夹下 vim /etc/profile // 修改系统环境变量 #zookeeper-3.6.3配置 export ZOOKEEPER_HOME=/usr/local/zookeeper-3.6.3/ export PATH=$ZOOKEEPER_HOME/bin:$PATH export PATH source /etc/profile //让修改生效
#进入到bin,启动服务端 ./zkServer.sh start ../conf/zoo.cfg
我们在启动之后如果使用leof -i:2181 ,查看没有启动我们就去logs文件夹下面,tail -1000f +日志名 一般情况下出现的是8080端口号被占用,此时我们返回conf文件夹下的zoo.cfg,修改端口号, 添加一行代码即可 admin.serverPort=8888 ,然后重新启动./zkServer.sh start ../conf/zoo.cfg
启动客户端
./zkCli.sh start
1.增
create(zooKeeper, "/myzkTest", "zzj");
public static void create(ZooKeeper zooKeeper, String node, String data) throws InterruptedException, KeeperException {
System.out.println("开始创建节点:" + node + "节点数据为:" + data);
List<ACL> acl = ZooDefs.Ids.OPEN_ACL_UNSAFE;
CreateMode createMode = CreateMode.PERSISTENT;
zooKeeper.create(node, data.getBytes(), acl, createMode);
System.out.println("zk节点创建成功");
}
2.删
delete(zooKeeper,"/myzkTest");
public static void delete(ZooKeeper zooKeeper, String node) throws InterruptedException, KeeperException {
Stat stat = zooKeeper.exists(node,false);
System.out.println("开始删除节点:" + node + "原来的版本号是"+stat.getVersion());
zooKeeper.delete(node,stat.getVersion());
System.out.println("节点删除成功");
}
3.改
setData(zooKeeper,"/myzkTest","ben");
public static void setData(ZooKeeper zooKeeper, String node,String data) throws InterruptedException, KeeperException {
Stat stat = zooKeeper.exists(node,false);
System.out.println("开始修改节点:" + node + "原来的版本号是"+stat.getVersion());
zooKeeper.setData(node,data.getBytes(),stat.getVersion());
System.out.println("节点修改成功");
}
4.查
getData(zooKeeper,"/myzkTest");
public static void getData(ZooKeeper zooKeeper, String node) throws InterruptedException, KeeperException {
byte[] data = zooKeeper.getData(node,false,null);
System.out.println("查看节点"+node+"的数据为"+new String(data));
}
5.zk连接
//zk连接方法
public static ZooKeeper connect() throws IOException {
ZooKeeper zk = new ZooKeeper(zkconnect, timeout, null);
System.out.println("zk连接成功");
return zk;
}
6.zk连接地址
//zk的连接地址
public static final String zkconnect = "120.53.104.226:2181";
//超时时间
public static final int timeout = 15000;