Zookeeper的介绍和搭建

Zookeeper 简介

Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理、命名、分布式同步、集群管理、数据库切换等服务。它不适合用来存储大量信息,可以用来存储一些配置、发布与订阅等少量信息。Hadoop、Storm、消息中间件、RPC服务框架、分布式数据库同步系统,这些都是Zookeeper的应用场景。
Zookeeper集群中节点个数一般为奇数个(>=3),若集群中Master挂掉,剩余节点个数在半数以上时,就可以推举新的主节点,继续对外提供服务。
在这里插入图片描述

Zookeeper集群搭建

  • 下载zookeeper对应的tar包,上传
    在这里插入图片描述
  • 将解压后的文件名zookeeper-3.4.10修改为zookeeper。tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/local/
  • 在三个zookeeper节点配置环境变量
    • vim /etc/profile
    • 添加export ZOOKEEPER_HOME=/usr/local/zookeeper
    • 在path中添加$ZOOKEEPER_HOME/bin
      在这里插入图片描述
    • 执行source /etc/profile 使环境变量立即生效
  • 修改zookeeper中conf目录下的zoo_sample.cfg为zoo.cfg
  • 在这里插入图片描述
    修改三个zookeeper节点中的zoo.cfg文件,修改dataDir
  • 在zookeeper目录下,创建data目录。在3个zookeeper节点中data目录下分别创建myid文件,并分别添加内容0、1、2
  • 启动zookeeper
    -在这里插入图片描述

ZK常见命令

命令含义
ls /查找根目录
create /test abc创建节点并赋值
get /test获取指定节点的值
set /test cb设置已存在节点的值
rmr /test递归删除节点
delete /test/test01删除不存在子节点的节点

ZK 的java连接API

/**
 * 
 */
package zookeeper;

import java.util.List;

import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs;
import org.apache.zookeeper.ZooKeeper;


public class zk {

	public static void main(String[] args) throws Exception {
		String connectionString = "master:2181,node1:2181,node2:2181";
		int sessionTimeout = 30000;
		ZooKeeper zk = new ZooKeeper(connectionString,sessionTimeout,null);
		
		zk.create("/testRoot","testRoot".getBytes(), 
		ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
		
		zk.create("/testRoot/child1","child1_data".getBytes(), 
	    ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
		
		List<String>children=zk.getChildren("/testRoot",new Watcher() {
			public void process(WatchedEvent event) {
				System.out.println("this is children node event");
	            System.out.println(event);
			}
		});
		
		System.out.println(children);
		
		zk.delete("/testRoot", -1);
		zk.delete("/testRoot/child1", -1);
		zk.close();
		
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值