什么是zookeeper
Zookeeper是Hadoop的一个子项目,它是分布式系统中的协调系统,可提供的服务主要有:分布式配置服务、统一命名服务、分布式状态同步、集群管理服务等。
zookeeper的最大作用是监听通知机制,客户地段注册监听它关心的节点,当节点发生变化(如数据修改,删除,子目录节点添加或删除)时,zookeeper会通知客户端。
Zookeeper特点:
简单: Zookeeper的核心是一个精简的文件系统,它支持一些简单的操作和一些抽象操作,例如,排序和通知。
丰富: Zookeeper的原语操作是很丰富的,可实现一些协调数据结构和协议。例如,分布式队列、分布式锁和一组同级别节点中的“领导者选举”。
高可靠: Zookeeper支持集群模式,可以很容易的解决单点故障问题。
松耦合交互: 不同进程间的交互不需要了解彼此,甚至可以不必同时存在,某进程在zookeeper中留下消息后,该进程结束后其它进程还可以读这条消息。
资源库: Zookeeper实现了一个关于通用协调模式的开源共享存储库,能使开发者免于编写这类通用协议。
zookeeper的安装
1,先安装和配置jdk,Zookeeper的运行环境是需要java的。
2,在http://zookeeper.apache.org/下载zookeeper包,到linux下解压并配置环境变量
3,在zookeeper的conf目录下zoo_sample.cfg复制成zoo.cfg,以下修改可忽略。
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/var/zookeeper-data/
clientPort=2181
tickTime:指定了ZooKeeper的基本时间单位(以毫秒为单位);
initLimit:指定了启动zookeeper时,zookeeper实例中的随从实例同步到领导实例的初始化连接时间限制,超出时间限制则连接失败(以tickTime为时间单位);
syncLimit:指定了zookeeper正常运行时,主从节点之间同步数据的时间限制,若超过这个时间限制,那么随从实例将会被丢弃;
dataDir:zookeeper存放数据的目录;
clientPort:用于连接客户端的端口。
4,启动一个本地的ZooKeeper服务
zkServer.sh start
5,启动本地的zookeeper客户端来管理本地节点(znode)
zkCli.sh
基本命令
创建节点并传入数据:create [path] [data]
删除节点 delete [path]
更新节点数据 set [path] [data]
查询数据 get [path]